Javascript 类型';{}';不可分配给类型';编号';

Javascript 类型';{}';不可分配给类型';编号';,javascript,typescript,async-await,Javascript,Typescript,Async Await,因此,我理解async/await背后的思想只是使用承诺的一种更好的方式,但显然我没有正确理解它 async function a(): Promise <number> { return 5; } 异步函数a():Promise{ 返回5; } 这很好,返回一个已解决的承诺,结果为5 async function a(): Promise <number> { return await new Promise(resolve => { reso

因此,我理解async/await背后的思想只是使用承诺的一种更好的方式,但显然我没有正确理解它

async function a(): Promise <number> {
  return 5;
}
异步函数a():Promise{ 返回5; } 这很好,返回一个已解决的承诺,结果为5

async function a(): Promise <number> {
  return await new Promise(resolve => {
    resolve(5);
  });
}
异步函数a():Promise{ 返回等待新承诺(解决=>{ 决心(5); }); } 错误TS2322:类型“{}”不能分配给类型“number”。
类型“{}”中缺少属性“includes”


据我所知,wait将等待承诺解决并返回结果,在本例中,结果为5,应与上面的示例相同?

默认情况下,
新承诺()
相当于
新承诺

你的内心承诺不是返回一个数字,而是一个对象。您需要向编译器确保它是带有类型号的承诺

等待新承诺
替换为
等待新承诺

异步函数a():Promise{ 返回等待新承诺(解决=>{ 决心(5); }); } 同时检查你的代码,我认为你可以在没有中间承诺的情况下使用你的代码

async function a(): Promise<number> {
      return await 5;
}
异步函数a():Promise{ 返回等待5; }
默认情况下,
新承诺()
等同于
新承诺

你的内心承诺不是返回一个数字,而是一个对象。您需要向编译器确保它是带有类型号的承诺

等待新承诺
替换为
等待新承诺

异步函数a():Promise{ 返回等待新承诺(解决=>{ 决心(5); }); } 同时检查你的代码,我认为你可以在没有中间承诺的情况下使用你的代码

async function a(): Promise<number> {
      return await 5;
}
异步函数a():Promise{ 返回等待5; }
类型“{}”不可分配给类型“number”
似乎是一个更合适的标题。为什么要在async/await中使用promise?@HarshPatel如果在
a()
中有一个可与回调一起工作的函数,您还会如何编写此代码?我打开了一个关于类型警告的错误:.
类型“{”'不可分配给类型'number'
似乎是一个更合适的标题。为什么要将promise与async/await一起使用?@HarshPatel如果您在
a()
中有一个可与回调一起使用的函数,您还会如何编写此代码?我在类型警告上打开了一个错误:。这是一个简化的示例,显然我需要中间承诺:DIt是一个简化的例子,显然我需要中间承诺:D