assert functions
assert functions というのを知った。
TypeScript 3.7の`asserts x is T`型はどのように危険なのか - Qiita
TypeScript: Documentation - TypeScript 3.7
3.7 からあったのに……。
ページ内のコードをそのまま引用すると、
function assertIsString(val: any): asserts val is string {
if (typeof val !== "string") {
throw new AssertionError("Not a string!");
}
}
というやつ。
この関数がエラーを投げなかった場合は引数の val が string 型であることが確定する。
なるほどな〜。
で、これをアロー関数で書いたんだけど、なぜか呼び出すときにエラーが出てしまい function キーワードだと大丈夫だった。
アロー関数で書くとこうなると本当になんでか分からん pic.twitter.com/RULHtSFJAj
— tagucch (@tagucch) August 9, 2022
これがなんでか全然分からん。
従来の関数とアロー関数の違い | TypeScript入門『サバイバルTypeScript』
違いによってなんか分かるかなと思ったけどわかりませんでした。有識者の方いれば教えてください……。