【问题标题】:Unsafe use of expression of type 'any' for return statements in Typescript function在 Typescript 函数中对 return 语句不安全地使用“any”类型的表达式
【发布时间】:2021-08-23 17:50:14
【问题描述】:
async fetchDetail(token: string): Promise < object > {

  const headersRequest = {
    Authorization: `Basic ${token}`,
    'Content-Type': 'application/json',
  }

  return await this.httpService.get( < URL > , {
      headers: headersRequest
    })
    .toPromise()
    .then((response): object => response.data)
    .catch(() => {
      throw new NotFoundException()
    })
}

我一直收到这行 .then((response): object => response.data)

的 lint 问题

其中规定 不安全地使用“any”类型的表达式

【问题讨论】:

  • 错误:/Users/ghostChat/microserviceDetails/src/modules/detailFinder/detailFinder.service.ts:16:35 - 不安全地使用“任何”类型的表达式。这是整个错误声明。错误标记为“response.data”

标签: javascript node.js typescript backend nestjs


【解决方案1】:

我怀疑这是因为response 是一个“通用对象”,而打字稿无法“识别”它具有.data 属性。

为了解决这个问题,我们可以声明一个类型的接口:

type hasData = { data: any };

然后用它向 TS “解释”我们期望响应包含该属性:

.then((response: hasData): object => response.data)

【讨论】:

  • 必须将其更改为 type hasData = { data: object };
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2015-01-12
  • 2022-01-17
  • 2022-10-08
  • 2019-05-28
相关资源
最近更新 更多