[英]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.