我正在迁移一个带有 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
应该初始化为一个将 aIUser
作为输入并且不返回任何内容的函数。
另外,值得注意的是,在const [user, setUser] = useState({name: 'Jon'});
没有任何初始化的情况下使用效果很好,但我想利用 TypeScript 来强制对 init 进行类型检查,尤其是当它依赖于某些props时。
谢谢你的帮助。