Ben*_*ins 9 async-await typescript ecmascript-6 angular
我希望能够使用async关键字,但我希望我的typescript编译成es5代码,以便我的代码可以在普通人浏览器中运行.当我尝试async在visual studio代码中使用时,我收到此错误.
异步功能仅在定位ECMAScript 2015或更高版本时可用.
我认为定位es6意味着编译打字稿的输出javascript会是es6,并且es6在大多数浏览器上都不起作用了吗?
这是我的tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"lib": ["es2015", "dom"],
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"outDir":"js/app/",
"typeRoots": [
"./node_modules/@types"
]
},
"exclude": [
"node_modules",
"app/test"
]
}
Run Code Online (Sandbox Code Playgroud)
我想知道该lib领域是否可以使它工作,因为它说,"es2015"但它没有.
我也在想也许core-js垫片async可用,但我只在这里包含垫片index.html:
<script src="node_modules/core-js/client/shim.min.js"></script>
所以我不认为它async在编译时可用.有没有更好的方法来导入core-js?
如何使async我的代码无法在大多数浏览器上运行?
wun*_*uno 11
ECMAScript6 大多数主流浏览器都支持.
正如@loganfsmyth对此答案的评论所述,
请记住,"大多数主流浏览器"仍然只能覆盖一小部分用户群.
ES6完全支持ECMAScript 2015标准,也称为ES6,将这一主要的JavaScript演变带到了macOS和iOS上的Safari.
你将不得不改变,
"target": "es5",
Run Code Online (Sandbox Code Playgroud)
至
"target": "es6",
Run Code Online (Sandbox Code Playgroud)
ES7目标中的TypeScript 1.7 async/await支持(Node v4 +)TypeScript现在支持对ES6生成器具有本机支持的引擎的异步函数,例如Node v4及更高版本.异步函数以async关键字为前缀; await挂起执行,直到满足异步函数返回promise,并从返回的Promise中解除值.
| 归档时间: |
|
| 查看次数: |
4943 次 |
| 最近记录: |