2017-09-15 49 views
2

我這裏的問題只接受預定義值的是,我在收到一個字符串值作爲參數傳遞給一個組成部分,但我想限制可以作爲一個參數的值,就像枚舉如何在角@input

我用

@Input() type: string = ''; 

但在組件,什麼都可以引入'類型的財產,我需要的是限制爲僅3個選項,正如我之前所說的,像一個枚舉

+0

這取決於你所說的「限制」,並在您預計什麼時候警告/錯誤是扔了的東西。一個簡單的解決方案是隻是爲了檢查你的組件上的值,並拋出一個異常,如果它們是無效的。如果你正在尋找一個編譯時的解決方案,然後在最起碼你需要的角度是在編譯時(即AOT)轉換你的模板腳本 - 在這種情況下,簡單地輸入的輸入值可能工作 - 即使用打字稿限制類型。 –

回答

3

創建Enum和設置您的的類型10到枚舉。你的價值將被傳遞,如果它是在枚舉值之一,否則將undefined

enum MyEnum { 
    First, 
    Second, 
    Third 
} 

@Input() type: MyEnum; 
0

試試這個:

@Input() type: 'acceptable1' | 'acceptable2' | 'acceptable3'; 

這裏使用了打字稿聯合類型,允許任何列出的類型。 a或b或c等

或使用TS enum