交叉型(インターセクション型)(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型が発生しました。