私は現在、表現力の点で、Google Closure CompilerとFlowの静的型チェッカーを比較しています。後者について私が気に入っているのは、それが明らかにrepresent tagged unionsできれいにできるということです。このマニュアルでは、この例を示します。閉包コンパイラのタグ付きユニオン
type Result = Done | Error; // a disjoint union type with two cases
type Done = { status: 'done', answer: Matrix };
type Error = { status: 'error', message: string };
Closure Compilerを使用してこのようなことを行う方法はありますか?それは、特定のタイプのものだけでなく、固定値を持つようにオブジェクトのある種の特質を強制する何らかの方法を意味しますか?そして、型推論にその値を使うためには、組合のさまざまなオプションを区別することができますか?私はこの効果についての文書は見つけられませんでした。
型として 'enum'を使うことができるかどうかわかりませんでした。私があなたに正しく当てはまるとすれば、両方のフォームは値と対応する型の間のリンクを固定せずに、 'status'プロパティが2つの値のどちらかであると言います。おそらく、タイプごとに1つの要素のenumがその目的に役立つでしょう...それを少し実験しなければなりません。 – MvG
単一の値を持つ列挙型が機能する可能性があります –