TypeScript报错:never[]不可赋值给SetStateAction<never[]>如何解决
问题原因
- 报错的核心是
visitedForms状态的类型推断错误。你初始化该状态时仅传入了空数组作为初始值,未显式声明类型,TypeScript会默认将空数组推导为never[]类型,即该数组不允许插入任何类型的元素。 - 你后续的代码往数组中插入了
currentIndex(number类型),返回的新数组类型为number[],和never[]的状态类型不匹配,因此触发TS类型报错。
解决方案
修改visitedForms对应的useState声明,显式指定数组元素类型为number即可:
// 错误的初始写法(对应你的原有代码逻辑) const [visitedForms, setVisitedForms] = useState([]) // 修改为显式指定类型的写法 const [visitedForms, setVisitedForms] = useState<number[]>([])
修改后状态会被正确识别为数字数组,后续追加索引、排序的操作都不会再触发类型错误。
内容的提问来源于stack exchange,提问作者CodeG
相关产品推荐
相关产品推荐

