2017-06-12 114 views
2

我現在有兩個字符串數組,幷包含相同字符串的字符串字面聯合類型:打字稿數組字符串字面型

const furniture = ['chair', 'table', 'lamp']; 
type Furniture = 'chair' | 'table' | 'lamp'; 

我都在我的應用程序所需要的,但我想保持我的代碼幹。那麼有什麼辦法可以從另一個方面推斷出來嗎?

我基本上想說一些像type Furniture = [any string in furniture array]這樣的東西,所以沒有重複的字符串。

回答

0

唯一adjustement我建議是使const保證與該類型兼容,就像這樣:

type Furniture = 'chair' | 'table' | 'lamp'; 

const furniture: Furniture[] = ['chair', 'table', 'lamp']; 

這會給你一個警告,你應該做一個拼寫錯誤的陣列中,或添加未知項目:

// Warning: Type 'unknown' is not assignable to furniture 
const furniture: Furniture[] = ['chair', 'table', 'lamp', 'unknown']; 

唯一的情況是,這不會幫助你,是陣列沒有包含其中一個值的地方。