{ return "-6ren">
gpt4 book ai didi

typescript ,声明变量类型必须是对象的键

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:42 25 4
gpt4 key购买 nike

假设我有一个如下所示的对象:

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 的类型将自动更新。但这只有在编译时知道 key 时才有效。

有关 keyof 的更多信息,请参阅 here .

关于 typescript ,声明变量类型必须是对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48461419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com