2017-07-15 65 views
2

我正在学习使用Atom IDE的TypeScript。异步不能工作原子类型脚本

的问题是,当我尝试下面的代码

async function fn1() { 
    throw new Error("Not implemented yet"); 
} 

我得到一个错误

在ES5/ES3异步函数或方法需要“承诺”的构造。

然而,如果我粘贴 https://www.typescriptlang.org/play/index.html

它的代码编译正确。此外,当我在Atom中使用Promise时,我没有收到任何建议。

回答

0

这里是工作的打字稿配置(tsconfig.json),我为我的最低配置为webpacked打字稿使用:

{ 
    "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 
    } 
} 
1

假设您的目标是ES5,您需要确保在编译器选项中包含适当的lib值。

{ 
    "compilerOptions": { 
     "lib": ["dom", "es2015.promise", "es5"] 
    } 
} 

...以及引入任何必要的polyfill。请参阅TypeScript release notes上的低级异步文档。