typescript - Typescript中带有参数的动态键
问题描述
我有一个像这样的对象
const SUMs = {
sum_1: {},
sum_2:{},
sum_3:{},
sum_4:{}
}
现在我想通过这样的循环范围访问它
for (let i of [1,2,3,4]){
const key = `sum_${i}`
const sum = SUMs[key]
}
但它不起作用,所以在这种情况下任何可以帮助我的解决方案?谢谢!
解决方案
有两种可能的解决方法:
- 广泛的类型
SUMS
SUMS
如果您不提供注释,Typescript 会推断出的类型:
{
sum_1: {};
sum_2: {};
sum_3: {};
sum_4: {};
}
您可以改为将此类型扩展为{[key: string]: {}}
,这将允许您使用此处访问项目SUMs[string]
- 您可以改为键入断言您的密钥,如下所示:
for (let i of [1, 2, 3, 4]) {
const key = `sum_${i}`;
const sum = SUMs[key as keyof typeof SUMs]; // you're asserting that `key` can only be keys of the `SUMs` object
console.log(sum);
}
可以说(2)是一种更正确的方法
推荐阅读
- c - memcpy() 是睡眠函数吗?
- mysql - SQL 错误代码:1452 将数据插入表中时,FK 引用另一个表
- r - 从 ggplot2 图例中删除黑框
- postman - 邮递员“评估预请求脚本时出错”,但预请求脚本为空
- jquery - Importing pages using my own code based on jQuery inspired from Angular
- java - Toggle between two languages Struts2 if else
- django - Docker-compose django nginx doesnt find static files
- c# - C# 中的 DeviceIoControl 导致 998 错误:对内存位置的访问无效
- c - 将值传递给修改后的系统调用函数已更改
- amazon-web-services - AWS lambda 使用事件构建 FilterExpression