共用体タイプおよび交差型という用語の背後にあるロジックを理解できません)TypeScriptで。
実用的には、異なる型のプロパティがプロパティのセットである場合、それらを&
演算子と組み合わせると、結果の型はunionそれらのセットの。その論理に従って、私はこのような型が共用体型と呼ばれることを期待します。それらを|
と組み合わせると、それらの共通のプロパティであるセットのintersectionのみを使用できます。
ウィキペディア その論理を支持しているようです:
任意の空でない集合Sのべき集合(すべてのサブセットの集合)は、ブール代数、集合の代数を形成し、2つの演算∨:=∪(和集合)と∧:=∩(交差)を持ちます。
ただし、 typescriptlang.org によると、これは正反対です。&
は、交差型と|
は共用体タイプに使用されます。
別の見方があると思いますが、わかりません。
これについて別の考え方があります。赤いもの、青いもの、大きなもの、小さなものの4つのセットを考えてみましょう。
すべての赤いものとすべての小さなもののセットをintersectすると、unionプロパティの-セット内のすべてに、redプロパティとsmallプロパティの両方があります。
しかし、unionofred small thingsand青い小さなもの、結果のセットではsmallnessプロパティのみがユニバーサルです。 Intersecting「redsmall」と「bluesmall」は「small」を生成します。
言い換えると、値のドメインの和集合を取ると、交差するプロパティのセットが生成され、その逆も同様です。
タイプ A | B
は、どちらかA
またはB
であるオブジェクトを指します。言い換えると、このようなタイプの値は、A
の値とB
の値のnionから取得されます。
タイプ A & B
は、両方A
およびB
であるオブジェクトを指します。言い換えると、このようなタイプの値は、A
の値とB
の値のintersectionから取得されます。
名前とセマンティクスは、C++などの他の言語でも同じです。