使用 TypeScript 在 useState React Hook 上设置类型

新手上路,请多包涵

我正在迁移一个带有 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 进行类型检查,特别是如果它依赖于某些道具。

谢谢你的帮助。

原文由 htaidirt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 673
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进