当前位置: 首页 > 面试题库 >

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

从智志
2023-03-14
问题内容

我正在迁移带有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应将其初始化为以a IUser作为输入但不返回任何内容的函数。

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

谢谢你的帮助。


问题答案:

用这个

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

在此处查看相应的类型:https
:
//github.com/DefinitelyTyped/DefinitelyTyped/blob/8a1b68be3a64e5d2aa1070f68cc935d668a976ad/types/react/index.d.ts#L844



 类似资料:
  • 我正在迁移React with TypeScript项目以使用钩子特性(React v16.7.0-alpha),但我不知道如何设置分解结构元素的类型。 以下是一个例子: 我想强制变量类型为。我唯一成功的试验是分两个阶段进行:打字,然后初始化: 但我相信有更好的办法。另外,应该初始化为一个函数,该函数将作为输入,并且不返回任何内容。 另外,值得注意的是,使用

  • 我对react、react hooks和js/ts非常陌生。 目前,我正在编码一个简单的按钮,它通过useContext获取一个状态,并通过useReucer和调度函数更新该状态。 我试图将我所有的代码分离到特定的文件中。来自减速器的调度函数在提供程序中作为值传递。 当我在使用者组件中调用传递的函数时,我可以给它一个任何类型的值(在我的示例中是数字)给调度器。我在上下文、reducer等中设置了所

  • 问题内容: 我有一个类似的反应成分 使用react-navigation我通常会通过说来应用导航选项 使用打字稿我得到了错误 我怎样才能解决这个问题? 我尝试编写一个界面 但是没有运气。 问题答案: 关键思想是为常量指定正确的类型。可能已经提供了该类型。但是,您也可以这样扩展内置接口:

  • 我学习打字稿。我想设置组件功能道具类型。但我不知道如何设置。 这是代码。 我不想设置“任何”。我设置了什么类型?

  • 我正在尝试为属性创建get和set方法: 设置值的关键字是什么?

  • 我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。