小编典典

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

all

我正在迁移一个带有 TypeScript 的 React 项目以使用钩子功能(React
v16.7.0-alpha),但我无法弄清楚如何设置解构元素的类型。

这是一个例子:

interface IUser {
  name: string;
}
...
const [user, setUser] = useState({name: 'Jon'});

我想强制user变量为 type IUser。我唯一成功的试验是分两个阶段进行:键入,然后初始化:

let user: IUser;
let setUser: any;
[user, setUser] = useState({name: 'Jon'});

但我确信有更好的方法。此外,setUser应该将其初始化为一个以 aIUser作为输入且不返回任何内容的函数。

另外,值得注意的是,在const [user, setUser] = useState({name: 'Jon'});没有任何初始化的情况下使用效果很好,但我想利用 TypeScript 来强制对 init 进行类型检查,尤其是在它依赖于某些道具的情况下。

谢谢你的帮助。


阅读 124

收藏
2022-06-29

共1个答案

小编典典

用这个

const [user, setUser] = useState<IUser>({name: 'Jon'});

DefinitelyTyped中的对应类型

2022-06-29