首页 > 解决方案 > Promise resolve 在 TypeScript 中有错误,因为错过了任何类型

问题描述

我正在使用 gulp 将 TS 文件编译为 JS 并针对此代码:

function Hello(): Promise<string> {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Hello, World!');
    }, 3000);
  });
}

编译有这个错误:

error TS7006: Parameter 'resolve' implicitly has an 'any' type.

这意味着,我应该使用any这样的类型:

return new Promise((resolve: any) => {

但是为什么我应该any在这种情况下使用?当我Promise<string>用来定义 Promise 时?

依赖项:

"dependencies": {
    "gulp": "^4.0.2",
    "gulp-typescript": "^6.0.0-alpha.1",
    "typescript": "^3.9.5"
  }

谢谢

标签: javascripttypescript

解决方案


看起来 TS 编译器无法识别该Promise类型。最可能的原因是缺少或不正确的配置。我会假设 TS 正在为ES5未定义承诺的地方进行编译。尝试按照本页tsconfig.json所述更新您的。即添加以下内容tsconfig.json

"compilerOptions": {
    "target": "ES6"
}

推荐阅读