2017-04-06 21 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 { ... } 

ISet是一套通用的合同,EmptySet是實現該合同的具體類型。很明顯,你可以使用一組比unionintersection做更多的事情,這只是一個例子。

+0

謝謝,你能否請求解釋爲什麼像這樣不起作用: type Z = {a:number}&{a:string}; – David

+0

我不確定我是否理解,你如何期待它的工作? – pablochan

+0

我期望它是一個空集,因爲a不能是數字和字符串。 – David