我正在使用Atom IDE学习TypeScript。
问题是,当我尝试以下代码时
async function fn1() {
throw new Error("Not implemented yet");
}
我收到错误
ES5 / ES3中的异步功能或方法需要承诺'构造
但是,如果我粘贴代码 https://www.typescriptlang.org/play/index.html
它正确编译。此外,当我在Atom中使用Promise时,我没有得到任何建议。
答案 0 :(得分:1)
假设您的目标是ES5,您需要确保在编译器选项中包含适当的lib值。
{
"compilerOptions": {
"lib": ["dom", "es2015.promise", "es5"]
}
}
......以及引入任何必要的polyfill。请参阅TypeScript release notes上的下层异步文档。
答案 1 :(得分:0)
这是一个有效的TypeScript配置(tsconfig.json
),我将其用作webpacked TypeScript的最小配置:
{
"compilerOptions": {
"target": "es5",
"types": ["jquery"],
"lib": ["dom", "es2015"],
"baseUrl": "."
},
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
这是Node.js目标版本:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"outDir": "../dist/server",
"types": ["node"],
"baseUrl": ".",
"noImplicitAny": true
},
"compileOnSave": false,
"filesGlob": [
"**/*.ts"
],
"files": [
"server.ts"
],
"atom": {
"rewriteTsconfig": false
}
}