メインコンテンツまでスキップ

交叉型(インターセクション型)(Intersection type)

我々はry

はい、できます。交叉も表現できます。

type A = 1 | 2 | 3 | 4
type B = 3 | 4 | 5 | 6

type I = A & B // I = 3 | 4

ちなみに、交叉とは2つの集合どちらにも属する要素を取るものであり、それが存在しない場合には空集合が生まれます。そして後述しますがTypeScriptにおいて空集合はneverという型になります。

type I = number & string // I = never

数値でもあり文字列でもある値は存在しないため空集合であるnever型が発生しました。