[英]Typescript, declare a variable type must be key of an object
假设我有一个如下对象:
let obj = {
method1: () => { return "method1 called" },
method2: () => { return "method2 called" },
method3: () => { return "method3 called" },
}
我想声明一个变量,该值只能是obj
存在的键之一。
手动,我可以这样做:
let myVar : "method1" | "method2" | "method3";
但有什么办法可以动态地宣布这个吗? 因此,我在obj
添加的任何方法都将被发现为myVar
有效值。
您可以使用keyof
运算符,这将为您提供一个包含其他类型的所有属性名称的类型。 要获取obj
的类型,我们使用typeof
运算符。
let myVar : keyof typeof obj; // Actual type will be "method1" | "method2" | "method3"
如果向对象添加更多键, myVar
的类型将自动更新。 但这只有在编译时知道密钥才有效。
有关keyof
更多信息,请参阅此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.