June 2023
Intermediate to advanced
336 pages
4h 39m
Japanese
Nothing is constant
Values may change over time
(well, except constants)
変わらないものは何もない
時間とともに値は変わる
(まあ、定数は別だけど)
……………………………………………………
「2章 型システム」では、「型システム」の概念と、それがどのように値を読み取り、変数の型を理解するのかを説明しました。ここでは、TypeScriptによる値の型の推論において重要な、2つの概念を紹介します。
合併型と型の絞り込みはパワフルな概念であり、TypeScriptはこれらを組み合わせることで、他の多くの主流の言語では不可能な、コード内の情報に基づいた高度な型の推論を行えます。
次のようなmathematician変数を考えてみましょう。
letmathematician=Math.random()>0.5?undefined:"Mark Goldberg";
このmathematicianの型は何でしょうか?
undefinedとstringのどちらもあり得る型ですが、どちらか一方に限定はできません。mathematicianは、undefinedかstringの「どちらか」になることができます。この種の「どちらか1つ」という型は、合併型(union type)†1と呼ばれます。合併型は、値がどの型であるかは正確にわからないけれど、2つ以上の選択肢のうちの1つであることはわかっているという状況に対処できる、素晴らしい概念です。
[†1] ...