You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript报错:类型‘never[]’无法赋值给‘number’,如何解决?

问题分析与解决

首先,报错的核心原因是类型不匹配:你把matrix定义成了number[][]类型(二维数字数组,每个子元素必须是number),但你在matrix[i][j] = []这行给数组元素赋值了一个空数组,TypeScript自然会抛出类型不兼容的错误。

而且这行代码逻辑上完全多余——紧接着你就把matrix[i][j]设为1了,之前的数组赋值没有任何实际作用,直接删掉就能解决报错。

修正后的最简代码

const matrix: number[][] = [];

for (let i = 0; i < 7; i++) {
  for (let j = 0; j < 7; j++) {
    if (!matrix[i]) matrix[i] = [];
    matrix[i][j] = 1;
  }
}

更高效的初始化方式

如果想简化代码,避免内层循环的判断,可以直接初始化每一行:

const matrix: number[][] = [];

for (let i = 0; i < 7; i++) {
  matrix[i] = new Array(7).fill(1);
}

或者用更简洁的数组推导写法:

const matrix: number[][] = Array.from({ length: 7 }, () => Array(7).fill(1));

内容的提问来源于stack exchange,提问作者Nikita Polevoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:10:34