最佳答案
我正在迁移一个带有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强制进行类型检查,特别是如果它依赖于某些道具的话。
谢谢你的帮助。