Answers:
您所要做的就是将您result的字符串数组定义为如下所示:
const result : string[] = [];
如果不定义数组类型,则默认为never。因此,当您尝试向其中添加字符串时,这是类型不匹配,因此引发了您看到的错误。
never不会有用s 数组。但是,在研究时,我遇到了这个答案,它具有很好的信息。
let x;)时any,默认情况下为类型。不never。
any[]。感到惊讶的是never[],这使它毫无用处。不直观 感谢你的回答。编辑:语法
另一种方法是:
const result = [] as any;
any不是一个好的选择,因为它基本上会关闭所有TypeScript功能。这是一种解决方法,可能会导致各种错误。
我在使用ReactJs Hook useState时在ReactJS无状态函数中 遇到相同的错误。我想设置对象数组的状态,所以如果我使用以下方式
const [items , setItems] = useState([]);
并像这样更新状态:
const item = { id : new Date().getTime() , text : 'New Text' };
setItems([ item , ...items ]);
我收到错误消息:
类型为'{id:number;的参数。文本:任何}'都不能分配给'never'类型的参数
但是如果这样
const [items , setItems] = useState([{}]);
错误消失了,但是索引为0的项目没有任何数据(不需要)。
所以我找到的解决方案是:
const [items , setItems] = useState([] as any);
我发现的解决方案是
const [files, setFiles] = useState([] as any);
never[]?除了“永远将为空的数组”以外,还有什么用?