TypeScript中如何创建强类型数组的数组?编译报错求解答
问题分析与解决
1. 语法错误修复
你第一行代码里的字符串转义在部分环境下可能触发解析异常,建议改用双引号包裹字符串(无需转义内部单引号):
let arr: Array<[string, number]> = [["dad's adidas", 123], ["moms gucci", 47]]
或者使用模板字符串:
let arr: Array<[string, number]> = [[`dad's adidas`, 123], [`moms gucci`, 47]]
你的类型定义Array<[string, number]>是正确的,确实能约束数组元素为[string, number]格式的元组。
2. 循环逻辑错误修复
内层循环的终止条件写错了——你把j < arr[i].length误写成了i < arr[i].length,这会导致内层循环无限执行(i的值不会随j递增而变化)。修正后代码如下:
let arr: Array<[string, number]> = [["dad's adidas", 123], ["moms gucci", 47]] for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { console.log(arr[i][j]) } console.log('\n') }
3. 可选优化
你也可以用更简洁的迭代语法替代传统for循环:
arr.forEach(item => { item.forEach(elem => console.log(elem)); console.log('\n'); });
内容的提问来源于stack exchange,提问作者Kouler
相关产品推荐
相关产品推荐

