type arr = Array<string> | Array<number>;
type duoArr = Array<arr>;
const duoArr: duoArr = [[1], ['a']];
const arr = duoArr[0];
arr.indexOf(arr[0]); //提示:类型“string | number”的参数不能赋给类型“never”的参数。不能将类型“string”分配给类型“never”。
const arr2 = duoArr[0] as Array<number | string>;
arr2.indexOf(arr[0]); //正常
如上代码
刚开始学ts没多久
我定义了一个二维数组,子数组调用indexof的时候,ts提示类型“string | number”的参数不能赋给类型“never”的参数。不能将类型“string”分配给类型“never”。
对子数组类型断言后则不会出现这种提示。
不太明白为什么会这样。
不知道有没有其他方法可以解决。
因为你 type arr 这里使用的是
也就是说 他可能是一个纯字符串的数组或者数字的数组
但是底下你在使用的时候却是一个既含有字符串又有数字的数组 所以在检索的时候类型错误了就