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调用中推断类型的主要内容,如果未能解决你的问题,请参考以下文章