1. ホーム
  2. typescript

TypeScriptのunion型とintersection型のネーミングについて

2023-11-06 07:13:11

質問

以下の用語の背後にある論理を理解することができません。 ユニオンタイプ 交差型 をTypeScriptで実装しています。

実用的には、異なる型のプロパティがセットになっている場合、それらを組み合わせると & 演算子を使うと、結果として得られる型は 結合 になります。このロジックに従えば、このような型は ユニオンタイプ . もし私がそれらを | と組み合わせると、共通のプロパティである 交差点 を使うしかありません。

ウィキペディア はその論理を裏付けているようです。

<ブロッククオート

任意の非空集合Sの冪集合(すべての部分集合の集合)は、ブール代数(集合の代数)を形成し、∨ :=∪(和)、∧ :=∩(交差)の二つの演算を持つ。

しかし、以下によれば typescriptlang.org によると によれば、それは全く逆です。 & を生成するために使われます。 交差点タイプ | 組合型 .

他の見方があると思うのですが、解りません。

どのように解決するのですか?

もう一つの考え方を紹介しましょう。4つのセットを考えてみましょう。青いもの、赤いもの、大きなもの、小さなものです。

もし、あなたが 交わる を交えると、すべての青いものとすべての小さいものの集合に行き着く。 結合 になる。つまり、セット内のすべてのものは青い性質と小さい性質の両方を持つ。

しかし、もしあなたが 結合 青い小物 赤い小物 のように、結果として得られる集合では小ささの性質だけが普遍的である。 交差する "青い小さい" と "赤い小さい" は "小さい" を生成する。

言い換えれば、値の領域の和を取ると、交差したプロパティのセットが生成され、逆もまた同様です。

画像にすると