【发布时间】:2019-05-08 02:16:35
【问题描述】:
我正在迁移一个带有 TypeScript 的 React 项目以使用钩子功能(React v16.7.0-alpha),但我不知道如何设置解构元素的类型。
这是一个例子:
interface IUser {
name: string;
}
...
const [user, setUser] = useState({name: 'Jon'});
我想强制user 变量为IUser 类型。我唯一成功的尝试是分两个阶段进行:输入,然后初始化:
let user: IUser;
let setUser: any;
[user, setUser] = useState({name: 'Jon'});
但我确信有更好的方法。此外,setUser 应初始化为一个函数,该函数接受 IUser 作为输入,并且不返回任何内容。
另外,值得注意的是,使用 const [user, setUser] = useState({name: 'Jon'}); 没有任何初始化工作正常,但我想利用 TypeScript 强制对 init 进行类型检查,特别是如果它依赖于某些道具。
感谢您的帮助。
【问题讨论】:
标签: reactjs typescript react-hooks