Open4
Discriminated union typesに対応する日本語用語いろいろ
判別共用体
英語の用語の直訳に一番近い。しかしunionを共用体と訳すのはC言語とかに由来する用語であり、TypeScriptのunionに共用体という訳語を充てるのはあまり正しくない。
判別という語を敢えて生かすなら「判別ユニオン」「判別合弁型」などになるか。しかしこんな用語が使われているのは見たことがない。TypeScript Deep Dive 日本語版では「判別可能なUnion型」とされており、用語としては長いが分かりやすくかつ正確な訳になっている。
直和型
英語でいうとdisjoint union。数学色の色が強い用語であり、discriminated union typesの理論的性質を強調したいときに使う用語。
数学的(集合論的)な意味としては、互いに交わらない2つの集合の和のこと。TypeScriptのdiscriminated union typesではそれぞれの構成要素が混ざらないようにタグ付けするので、型を集合とみなす(素朴な)見方からは確かに直和になっている。
タグ付きユニオン
英語でいうと tagged union。「タグ」をもとにユニオン型の各要素を判別するという実装まで反映した用語。
また、集合論的な状況でも、そのままだと交わってしまう2つの集合を直和としたい場合に各要素にタグ付けしてから和をとるテクニックがある(日本語版Wikipedia「直和」にある
そのため、実際の実装にも数学的な方面にも通用するバランスのとれた用語である。筆者がもっとも好んで使う。