reactjs - 如何在 React 中使用 Typescript 分配变量之前声明一个变量,而没有“类型中缺少索引签名”错误
问题描述
我正在尝试声明一个名为“reports”的变量并将其分配给具有字符串和数字类型的数组数组,但问题是当我分配它时出现一些错误。代码是这样的:
... // I get the response from an api
let reports: [string, string | number];
for (let key of response.data) {
reports.push(Object.entries(key)); // key = {a: 'a', b: 3, c: 'c'} something like this
}
错误:
1. Variable 'reports' is used before being assigned.
2. Argument of type '[string, unknown][]' is not assignable to parameter of type 'string | number'.
Type '[string, unknown][]' is not assignable to type 'string'.
3. Variable 'reports' is used before being assigned.
更新
我进行了这些更改,但仍然遇到问题并且不知道如何修复错误。
interface Report {
[report: string]: [string, string | number];
}
let reports: Report[] = [];
for (let key of response.data) {
reports.push(Object.entries(key));
}
错误
Argument of type '[string, string | number][]' is not assignable to parameter of type 'Report'.
Index signature is missing in type '[string, string | number][]'.
解决方案
您需要初始化变量,例如
let reports: [string, string | number] = [];
并制作reports
一个数组
let reports: [string, string | number][] = [];
推荐阅读
- hibernate - 在应用程序中使用休眠序列作为通用序列
- html - 选项标签禁用属性
- c# - 身份4、程序化登录
- java - 如何查询三 (3) 个表中共有一个相同的字段并按另一个字段对结果进行分组?
- swift - reduce(_:_:) 函数在 Swift 中的作用是什么?
- qt - 当 mousePressEvent 和 mouseReleaseEvent 被覆盖时,clicked 不起作用
- javascript - 如何使用 getElementsByTagName() 方法获取 body 标签的内容并将其存储在变量中
- android - android:/vendor 文件夹中的设备上没有剩余空间
- jpa - 保存列表
通过 jpa 没有创建新表 - javascript - 获取 innerHtml 或 innerText 或 nodeValue 并排除嵌套子级?