Avatar ·

如何在React中为useState正确指定TypeScript类型?

你好,同事们!我开始学习React中的TypeScript,立刻遇到了useState hook的类型化问题。 我有一个简单的表单组件,需要存储一个包含name和age字段的对象。我尝试这样做: ```typescript const [user, setUser] = useState({ name: '', age: 0 }); ``` 看起来能工作,但当我想把这个state传递给另一个组件或函数时,TypeScript报错。然后我尝试显式指定类型: ```typescript interface User { name: string; age: number; } const [user, setUser] = useState({ name: '', age: 0 }); ``` 现在能工作了,但我不明白:是否总是需要显式写出类型?如果我的state是数组呢?或者如果state可能为null?我试过这样: ```typescript const [items, setItems] = useState([]); // TypeScript推断为never[],我无法添加元素! ``` 还有一个问题:如果我把setUser函数传递给子组件,如何正确为其指定类型?我试过写`setUser: