gpt4 book ai didi

typescript - 当键不是字符串时,如何遍历对象的键?

转载 作者:行者123 更新时间:2023-12-01 23:53:42 25 4
gpt4 key购买 nike

对于我的应用程序中的各种配置(参数等),我喜欢使用对象。对象的键不是字符串,而是枚举。

当键不是字符串时,如何遍历键并将每个键作为正确的枚举类型获取?

例子:

enum Color {
RED = 1
}

let colorNames: { [key in Color]?: string } = {
[Color.RED]: "red"
}

Object.keys(colorNames).forEach(colorsKeyStr => {

let colorNum: Color = colorsKeyStr // <-- produces error
// What's the proper way to cast a "color" variable to the "Color" enum type?
})

最佳答案

您可以使用 map如果您需要 key 为其他内容,则为字符串。

enum Color {
RED = 1,
}

const colorNames: Map<Color, string> = new Map();
colorNames.set(Color.RED, "red");

// Looping over map
colorNames.forEach((value, key) => {
console.log("key", key); // Expected: 1
console.log("value", value); // Expected: "red"
});

// Get single value
const red = colorNames.get(Color.RED);

另一种选择是将 colorsKeyStr 转换为数字。

enum Color {
RED = 1
}

let colorNames: { [key in Color]?: string } = {
[Color.RED]: "red"
}

Object.keys(colorNames).forEach(colorsKeyStr => {
const index = Number(colorsKeyStr);
let colorNum: Color = index;
})

关于typescript - 当键不是字符串时,如何遍历对象的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63129351/

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