2017-08-25 50 views

回答

2

可以使用type關鍵字(不let )爲您的聯合類型創建 一個新類型 別名。

https://www.typescriptlang.org/docs/handbook/advanced-types.html

interface Man { 
    name: string 
} 

interface Dog { 
    breed: string 
} 

type ManOrDog = Man | Dog; 

有效地利用這些聯合類型,不要忘了對類型警衛一看,在同一個文檔的鏈接解釋。


編輯:爲什麼我用別名更換新型

一種新型的將是另一個Interface,你可以擴展等等。

您不能創建Interface來擴展由type創建的別名。

此外,錯誤消息不會顯示ManOrDog

在這種情況下,對於聯合類型,別名是唯一的方法。

對於交集型然而,你將有一個新型之間的選擇與

interface ManAndDog extends Man, Dog { } 

別名

type ManAndDog = Man & Dog; 
2

你可以使用繼承來實現它

interface ManDog extends Man, Dog {} 

備選地作爲這樣的類型爲具有任Man一個或Dog

type ManDog = Man | Dog; 
+0

感謝。哪一個被認爲是最佳實踐? –

+0

@camden_kid如果你不打算增加更多的功能,請使用選項2) –

+1

你確定它不應該是'type ManDog = Man |犬;'? –

相關問題