Reactjs 获取`不可分配给类型';绝不';`我的TypeScript函数中的问题
我在React函数组件中有一个函数,它在vanilla JavaScript中是有效的语法(当然,这里没有类型定义),但在TypeScript中我遇到了问题。这就是所讨论的功能:Reactjs 获取`不可分配给类型';绝不';`我的TypeScript函数中的问题,reactjs,typescript,Reactjs,Typescript,我在React函数组件中有一个函数,它在vanilla JavaScript中是有效的语法(当然,这里没有类型定义),但在TypeScript中我遇到了问题。这就是所讨论的功能: const getSelection = (id: number, selection: string) => { setAnswers((answers) => { const result = [...answers]; result[id] = selection;
const getSelection = (id: number, selection: string) => {
setAnswers((answers) => {
const result = [...answers];
result[id] = selection; // The error is here
return result;
});
};
这就是错误:
Type 'string' is not assignable to type 'never'.ts
顺便说一下,setAnswers
是我使用React的useState()
我不清楚如何解决这个问题。我为传入的每个参数指定了类型,但这并不能解决问题。我还尝试暂时为这两个参数any
创建类型,但这也没有解决问题。问题是Typescript无法推断asnwers
数组中项目的类型。这是因为当您将状态初始化为空数组时,没有可以推断类型的项。因此,typescript将状态类型推断为never[]
,这是不可用的,因为除了never
之外,没有任何东西可以never
您可以通过使用该状态的类型显式键入对useState
的调用来修复它,在本例中为string[]
const [answers, setAnswers] = useState<string[]>([])
const[answers,setAnswers]=useState([])
然后您的代码按预期工作
设置应答功能的类型是什么?请发布一个。更多信息请参见以上详细信息。
const [answers, setAnswers] = useState<string[]>([])