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の型は何でしょうか?

undefinedstringのどちらもあり得る型ですが、どちらか一方に限定はできません。mathematicianは、undefinedstringの「どちらか」になることができます。この種の「どちらか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.