定義可以採用string
,number
和boolean
原始值中的任何一個屬性的最佳方式是什麼?我需要一個屬性來接受任何這些基本類型作爲來自html輸入字段(可以是text/int/bool)的值。有any
未命中類型安全我正在尋找(具體來說,它不應該是對象,功能類型)。typescript:用於表示任何基本類型的值類型
0
A
回答
1
您可以定義接受這些屬性的函數,而不是屬性。
爲了使該功能專門只接受string
,number
和boolean
您將使用重載。實現簽名(鍵入any
)實際上不可調用,因此它不允許其他類型。
class Example {
storeMyThing(input: number): void;
storeMyThing(input: boolean): void;
storeMyThing(input: string): void;
storeMyThing(input: any) {
console.log(typeof input);
console.log(input);
}
}
var example = new Example();
// Yes
example.storeMyThing(1);
example.storeMyThing(true);
example.storeMyThing('String');
// No
example.storeMyThing(['Arr', 'Arr']);
example.storeMyThing({ prop: 'val'});
1
由於打字稿1.4,您可以創建一個聯合類型如下:
type Primitive = string | boolean | number;
而且使用這樣的:
function acceptPrimitive(prim: Primitive) {
// prim is of a primitive type
}
相關問題
- 1. 基於參數類型的TypeScript結果類型
- 2. 在TypeScript中創建基本類型的唯一類型?
- 3. 基本類型的基本類型
- 4. TypeScript類型的類型
- 5. Java類型,用於保存任何基元類型的兩個基元
- 6. 獲取適用於任何類別的泛型類型列表
- 7. 通用類:基於類型
- 8. 基於類型
- 9. 基本類型vs基類
- 10. Typescript調試 - 顯示類型
- 11. 基本類型
- 12. 基本類型
- 13. Angular2&Typescript - 類型
- 14. 如何顯示基於該類型
- 15. 基本類型和繼承類型的工作通用列表
- 16. Pyspark:基於類型
- 17. 泛型:基於通用類
- 18. 如何訪問Typescript中的基本類型?
- 19. 用於表示URL的MIME媒體類型(內容類型)?
- 20. Smali類型轉換爲基本類型
- 21. 如何定義基本類型的泛型類型限制?
- 22. 階:基本類型
- 23. 與基本類型
- 24. 如何jsdoc類型標記任何類類型提示
- 25. 對TypeScript類型的ChildProcess類的引用
- 26. 基於值而不是類型的Singledispatch
- 27. 如何基於模型的「類型」顯示正確的視圖?
- 28. Typescript日期類型?
- 29. 爲什麼TypeScript不縮小這種類型的後衛中的任何類型?
- 30. ReSharper - 僅適用於無基本類型的var提示
因爲打字稿沒有TypeUnions這是不可能的。您可以在此處爲此功能請求投票:https://typescript.codeplex.com/workitem/1364 – basarat