Javascript Promise resolve在TypeScript中出错,因为缺少任何类型

Javascript Promise resolve在TypeScript中出错,因为缺少任何类型,javascript,typescript,Javascript,Typescript,我使用gulp将TS文件编译为JS,对于以下代码: 函数Hello():Promise{ 返回新承诺(解决=>{ 设置超时(()=>{ 决心(“你好,世界!”); }, 3000); }); }看起来TS编译器无法识别承诺类型。最可能的原因是缺少或配置不当。我假设TS是为未定义承诺的ES5编译的。尝试更新您的tsconfig.json,如中所述。例如,将以下内容添加到tsconfig.json "compilerOptions": { "target&qu

我使用gulp将TS文件编译为JS,对于以下代码:

函数Hello():Promise{ 返回新承诺(解决=>{ 设置超时(()=>{ 决心(“你好,世界!”); }, 3000); });
}看起来TS编译器无法识别
承诺类型。最可能的原因是缺少或配置不当。我假设TS是为未定义承诺的
ES5
编译的。尝试更新您的
tsconfig.json
,如中所述。例如,将以下内容添加到
tsconfig.json

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

我编辑了
gulpfile.js
并解决了:

gulp.task('ts',function(){
返回gulp.src('*.ts')
.管道(ts)({
没错,
outFile:'output.js',
目标:“ES6”
}))
.喉管("./");;

});您的代码在TS 3.9.3中对我有效。我没有看到任何警告,不需要
任何
。我认为,
Promise
类型得到了正确的传播。@一定的性能,这可能是因为这个版本中的TS bug?这听起来像是一个不太可能的回归,但也不是不可能的。可能是其他原因导致了不一致。错误“Parameter'resolve'隐式地具有“any”类型,这意味着您不应该使用any。尝试将其定义为
string
类型,看看这是否有帮助。如果我正确理解了消息,这意味着TS不理解
Promise
构造函数,也不知道
resolve
是什么类型,因此如果有什么需要帮助的话,请使用
(resolve:(value:string)=>void)
。尽管真正的解决方案是让TS正确理解
承诺
,这可能是与设置相关的事情,也可能是某个地方缺少类型定义。