类型“never[]"缺少以下类型属性
'{ login: string; id: number; node_id: string; avatar_url: string; url: string; }': login, id, node_id, avatar_url, url
我创建了一个组件,它接受ApiUrl并通过axios获取信息,然后为useState User设置状态,之后我可以使用该信息进行结构化并在html中使用该变量
第一节第一节第一节第一节第一次
类型“never[]"缺少以下类型属性
'{ login: string; id: number; node_id: string; avatar_url: string; url: string; }': login, id, node_id, avatar_url, url
我创建了一个组件,它接受ApiUrl并通过axios获取信息,然后为useState User设置状态,之后我可以使用该信息进行结构化并在html中使用该变量
第一节第一节第一节第一节第一次
1条答案
按热度按时间vc9ivgsu1#
问题出在定义
userInfo
变量时,使用的代码如下:当我们编写TypeScript时,我们经常利用强大的编译器。它会在声明时隐式地定义变量的类型。当你用
string
,number
,boolean
,或者原型/类构造函数初始化变量时,这会很有用。这样做的缺点是,我们经常赋值一个变量,但是从不检查TypeScript隐式地赋值给它的数据类型。在本例中,
userInfo
变量被隐式赋值为never[]
类型。为什么?useState()
函数的定义如下:StateSetter
类型是我编造的,因为我不知道确切的类型(但这对这个问题来说无关紧要)你所做的就是把
[]
传递给useState
。因为这个数组有0
元素,TypeScript会隐式地把它类型化为never[]
(意味着它是一个永远不会有任何元素的数组。所以在这个例子中,T
被赋值给never[]
,所以useState
的返回类型是[never[], StateSetter]
。可以通过向
useState
添加类型参数来修改此设置:这告诉TypeScript什么类型的信息可以存储在该数组中(如果您要添加任何元素)。
今后员额说明:不要包含代码的屏幕截图。屏幕截图无法阅读,并且试图帮助您的人无法复制/粘贴您的代码。请在问题中包含格式化代码。
您可以使用反勾号来完成此操作:
这是常规文本:
This
将显示为内联代码