Typescript编译器无法从Promise resolve调用中推断类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript编译器无法从Promise resolve调用中推断类型相关的知识,希望对你有一定的参考价值。

在打字稿中,当使用下面的代码片段时,编译器无法识别item1的类型,它将分配为“ unknown”(请参见将光标悬停在Typescript Playground上的var名称上

  1. 我想念什么吗?
  2. 为什么打字稿编译器不能推断该类型将是字符串?
    const getItem = () =>
      new Promise((resolve) => {
        return resolve('a title');
      });

    (async function() {
      const item1 = await getItem();
      const item2 = await getItem();
    })();
答案

问题在于,无法通过传递给resolve方法的类型来推断Promise的类型。 resolve方法的类型从传递给Promise构造函数的泛型类型获取,而不是相反。同样,在这种情况下,您也不需要使用带有解析的return

以上是关于Typescript编译器无法从Promise resolve调用中推断类型的主要内容,如果未能解决你的问题,请参考以下文章

Axios 和 Typescript 给出一个类型的 promise 拒绝错误

Typescript 函数可以将 Promise<any> 作为 Promise<Bar> 返回吗?

使用 Angular Promise 进行 Jasmine 测试无法使用 TypeScript 解决

Promise.reject的TypeScript错误

当我从等待移动到 Promise.all 时,TypeScript 函数返回类型错误

从 Promise Typescript 中取出一个值