2017-04-06 9 views
0

私は理論的な質問があります。空のセットを表すTypeScriptで型を設計する方法はありますか? ユニオン、ディスジョイントユニオン、交差点などを使って定義しようとしました...空のタイプのスクリプト

+0

理論的には、論理的には論理的な答えがあります。 :)あなたは何を考えますか?空のインターフェースですか? – Jai

答えて

0

はい、私はこのようなタイプの有用性は、あなたのプログラミングスタイルに大きく依存すると思います。あなたは、このようなEmptySetを定義することができます。

interface ISet { 
    intersection: (s: ISet) => ISet; 
    union: (s: ISet) => ISet; 
} 

class EmptySet implements ISet { 
    intersection(s: ISet) { 
     return this; 
    } 

    union(s: ISet) { 
     return s; 
    } 
} 

class NonEmptySet implements ISet { ... } 

ISetEmptySetは、その契約を実装し、具体的なタイプで、セットの一般的な契約です。明らかに、unionintersectionよりも多くのことをセットで行うことができますが、これは単なる例です。

+0

ありがとう、なぜこのような何かがうまくいかない理由を説明してください: Z = {a:number}&{a:string}; – David

+0

私は理解していませんが、どうやってそれがうまくいくと思いますか? – pablochan

+0

私はそれが空集合であることを期待しています。なぜなら、aは数値と文字列の両方ではないからです。 – David

関連する問題