javascript - 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"
}
谢谢
解决方案
看起来 TS 编译器无法识别该Promise
类型。最可能的原因是缺少或不正确的配置。我会假设 TS 正在为ES5
未定义承诺的地方进行编译。尝试按照本页tsconfig.json
所述更新您的。即添加以下内容tsconfig.json
"compilerOptions": {
"target": "ES6"
}
推荐阅读
- php - 如何在变量数据中添加逗号?
- javascript - 如何确保 Node.js 中 setTimeout() 的最小延迟?
- reactjs - 如何放大复杂的 svg 结构
- android - 编辑 MultiAutocompleteTextView 样式
- node.js - 找不到本地工作区文件('angular.json')
- apache-spark - Spark 中的 ReduceByKey 和 parititionBy
- c++ - 这两种通过引用传递的 C++ 语法有什么区别?
- javascript - Webpack:将每个外部包放入自己的块中
- c# - 为集成测试创建默认的 HttpClientFactory
- docker - 为 gulp 设置 Docker