3章合併型とリテラル型
Nothing is constant
Values may change over time
(well, except constants)
変わらないものは何もない
時間とともに値は変わる
(まあ、定数は別だけど)
……………………………………………………
「2章 型システム」では、「型システム」の概念と、それがどのように値を読み取り、変数の型を理解するのかを説明しました。ここでは、TypeScriptによる値の型の推論において重要な、2つの概念を紹介します。
- 合併型
- ある値の取り得る型の数を、2つ以上に拡大する
- 型の絞り込み
- ある値の取り得る型の数を、より少なくする
合併型と型の絞り込みはパワフルな概念であり、TypeScriptはこれらを組み合わせることで、他の多くの主流の言語では不可能な、コード内の情報に基づいた高度な型の推論を行えます。
3.1 合併型
次のようなmathematician
変数を考えてみましょう。
let
mathematician
=
Math
.
random
()
>
0.5
?
undefined
:
"Mark Goldberg"
;
このmathematician
の型は何でしょうか?
undefined
とstring
のどちらもあり得る型ですが、どちらか一方に限定はできません。mathematician
は、undefined
かstring
の「どちらか」になることができます。この種の「どちらか1つ」という型は、合併型(union type)†1と呼ばれます。合併型は、値がどの型であるかは正確にわからないけれど、2つ以上の選択肢のうちの1つであることはわかっているという状況に対処できる、素晴らしい概念です。
[†1] ...
Get 初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.