您好,我在TypeScript项目中使用async / await,但是我得到了以下日志:
[ts] ES5 / ES3中的异步函数或方法需要'Promise'构造函数。确保您具有“ Promise”构造函数的声明,或在--lib
选项中包含“ ES2015” 。
我该如何解决?
您好,我在TypeScript项目中使用async / await,但是我得到了以下日志:
[ts] ES5 / ES3中的异步函数或方法需要'Promise'构造函数。确保您具有“ Promise”构造函数的声明,或在--lib
选项中包含“ ES2015” 。
我该如何解决?
Answers:
如错误消息所述,添加lib: es2015
到您的tsconfig.json
// tsconfig.json
{
"compilerOptions": {
"lib": [ "es2015" ]
}
}
更新:如果这对您不起作用,请尝试以下操作:
默认情况下,JetBrains IDE(例如WebStorm)使用其自己的实现。确保将其配置为使用TypeScript语言服务。
对于Visual Studio,项目文件和tsconfig.json
是互斥的。您将需要直接配置项目。
https://github.com/Microsoft/TypeScript/issues/3983#issuecomment-123861491
csproj
文件具有一些额外的xml元素来启用/禁用此类功能。
"dom"
在"lib"
数组中,否则会出现其他错误。
试试这个包含es6-promise类型定义的软件包
npm install --save @types/es6-promise
如果您使用的是VS,请删除tsconfig.json并在解决方案资源管理器中右键单击该项目,然后在“常规”中单击“ 属性”->“ TypeScript构建”,更改以下内容
ECMAScript版本:ECMAScript 6
模块系统:ES2015
您也可以使用“ lib”:“ es2015.promise”来解决该特定错误
VS2019似乎无法识别tsconfig.json文件,因此LIB选项不会更改应用程序。这是一种添加用于打字稿的承诺以接受ASYNC AWAIT的方法。
export function AD(first: any, second: any, callBack: any)
{
const rtn = async (dispatch: any): Promise<void> =>
{
await axios.post(TYPE.URI, { // provide a string of a URI to post into
parm1: first,
parm2: second
})
.then(data => // or you can use response instead of data as a name
{
console.log("data from call next");
console.log(data);
dispatch({ type: TYPES.AD, payload: data.data });
if (callBack)
{
callBack(data);
}
})
}
return rtn;
}
我终于设法解决了!
我在终端上的命令:
yarn tsc main.ts && nodejs main.js
我的错误消息:
main.ts:1:16 - error TS2705: An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your `--lib` option.
1 async function main() {
~~~~
Found 2 errors.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
我要做的是解决tsconfig.json文件。
我的tsconfig.json文件是这样的:
{
"compilerOptions": {
"target": "ESNext",
"lib": [
"ES2015",
"DOM"
]
}
}
我的终端命令是这样的:
yarn tsc -p ./tsconfig.json && nodejs main.js
如果我想运行其他.ts文件,我只需执行以下操作:
yarn tsc -p ./tsconfig.json && nodejs file_name.js
{ "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": false } }
这是我的tsconfig.json我应该如何编辑?