TypeScript 错误将不满足
TypeScript error will not satisfy
我正在使用 TypeScript 2.5.2。
我已经尝试降级到 TypeScript 2.2.2,同样的代码已经在另一个项目上工作了。
**错误:
文件:Weather.tsx'
严重性:'Error'
信息:
'Argument of type '(response: IListItem) => void' 不可分配给类型的参数
'(价值:{天气:IListItem;})=>无效| PromiseLike'。
参数类型 'response' 和 'value' 不兼容。
输入'{天气:IListItem; }' 没有与 'IListItem' 类型相同的属性。'**
语法有什么问题?
上的源代码
仅查看这些类型而不是其余代码:.then((response: HttpClientResponse): Promise<{weather: IListItem}>
中的类型参数指定响应是具有 weather
属性 类型 IListItem
而不是您在 .then((response: IListItem): void => {
处期望的裸 IListItem
,这解释了类型错误。
如果api响应确实是一个对象,您可以将后者更改为.then((response: {weather: IListItem})
并在正文中的每个出现response
的地方添加.weather
(或者甚至在没有类型注释的情况下简单地解构:then(({weather}): void => {
并使用 weather
而不是 response
。)
另一方面,如果 api 只是 returns 和 IListItem
,您可以将前者更改为 .then((response: HttpClientResponse): Promise<IListItem> => {
。
我正在使用 TypeScript 2.5.2。 我已经尝试降级到 TypeScript 2.2.2,同样的代码已经在另一个项目上工作了。
**错误: 文件:Weather.tsx' 严重性:'Error' 信息: 'Argument of type '(response: IListItem) => void' 不可分配给类型的参数 '(价值:{天气:IListItem;})=>无效| PromiseLike'。 参数类型 'response' 和 'value' 不兼容。
输入'{天气:IListItem; }' 没有与 'IListItem' 类型相同的属性。'**
语法有什么问题?
上的源代码仅查看这些类型而不是其余代码:.then((response: HttpClientResponse): Promise<{weather: IListItem}>
中的类型参数指定响应是具有 weather
属性 类型 IListItem
而不是您在 .then((response: IListItem): void => {
处期望的裸 IListItem
,这解释了类型错误。
如果api响应确实是一个对象,您可以将后者更改为.then((response: {weather: IListItem})
并在正文中的每个出现response
的地方添加.weather
(或者甚至在没有类型注释的情况下简单地解构:then(({weather}): void => {
并使用 weather
而不是 response
。)
另一方面,如果 api 只是 returns 和 IListItem
,您可以将前者更改为 .then((response: HttpClientResponse): Promise<IListItem> => {
。