2 つのインタフェースを &
で結ぶと、両方のインタフェースを備えていることを示す新しい型 (交差型: Intersection type) を定義することができます。
上記のように定義された FooAndBar
インタフェースを実装するクラスは、Foo
インタフェースと Bar
インタフェースの両方を実装しなければいけません。
☝️ 共用体は OR、交差型は AND
どちらかの型になることができること示す共用体 (union) が
|
(OR記号)で定義されるのに対し、両方の性質を持つ交差型 (intersection type) は &
(AND記号)を使って定義されます。
意味が直感的に分かりやすいですね。