我需要填写二进制矩阵。
const matrix: number[][] = [];
for (let i = 0; i < 7; i++) {
for (let j = 0; j < 7; j++) {
if (!matrix[i]) matrix[i] = [];
if (!matrix[i][j]) matrix[i][j] = []; //here is TS exception
matrix[i][j] = 1;
}
}
行matrix[i][j] = []
-抛出TS异常-Type 'never[]' is not assignable to type 'number'.ts(2322)***
。
我该怎么做才能避免它?
1条答案
按热度按时间mrwjdhj31#
这个错误是因为您尝试将一个空的数组(
never[]
)赋给number
。基于您的原始矩阵变量是一个二维数组,这意味着您的第二个检查是无用的,您可以删除它。typescript Playground
一个空数组的类型为
never[]
的原因是因为它的 freshness。如果它是一个变量,比如:它将被视为
any[]
.但是由于你将它显式地作为一个空数组添加到数组中,由于它是新鲜的,它立即使用赋值时 really 的类型:never[]