我正在使用TypeScript 2.5.2。 我已经尝试降级到TypeScript 2.2.2,相同的代码已经在另一个项目上工作。
**错误: 档案:Weather.tsx' 严重性:'错误' 信息: '类型的参数'(响应:IListItem)=>空隙'不能分配给类型的参数 '(价值:{天气:IListItem;})=>无效| PromiseLike&#39 ;. 参数类型'响应'和'价值'是不相容的。
输入' {天气:IListItem; }'没有与类型' IListItem'。' **
相同的属性语法有什么问题?
上的源代码答案 0 :(得分:2)
仅查看这些类型而不是代码的其余部分:.then((response: HttpClientResponse): Promise<{weather: IListItem}>
中的type参数指定响应是具有weather
类型IListItem
属性的对象,而不是IListItem
所期望的.then((response: IListItem): void => {
,这解释了类型错误。
如果api响应确实是一个对象,您可以将后者更改为.then((response: {weather: IListItem})
并将.weather
添加到正文中response
的每个外观中(或者甚至简单地在没有类型的情况下进行解构注释:then(({weather}): void => {
并使用weather
代替response
。)
另一方面,如果api只返回IListItem
,您可以将前者更改为.then((response: HttpClientResponse): Promise<IListItem> => {
。