[英]Define a type for all possible object property types
typeof
是一個 JavaScript 內置函數,它將變量的(運行時!)類型作為字符串(!)返回。 Typescript 類型與此完全不同,它們只是具有相同的名稱,因為 TypeScript 在這里被設計為接近 JavaScript。
特別是"string" | "number"
類型"string" | "number"
"string" | "number"
和string | number
string | number
不一樣。 值"Hello"
和42
可以分配給后者,但不能分配給前者。
這里的混淆是typeof
來自 JS 並且只返回 JavaScript 中定義的類型的字符串表示; 這與 TypeScript 完全沒有關系。 TypeScript 所做的就是知道可能的值,從而返回所有這些值的類型聯合,以獲得最佳的類型。
所以要回答這個問題
我們如何將該列表捕獲為用戶定義的類型
這些類型一開始就不一樣。 例如, typeof null === "object"
,因此即使是 TypeScript 類型null
也必須出現在該列表中。 事實上,當 typeof 應用於該類型的變量時,可以產生這些值中的任何一個的類型列表就是any
,所以
type ObjectPropertyType = any;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.