2017-07-15 57 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上的低級異步文檔。