我的angularjs应用程序的编译器选项如下所示。如果我将目标更改为es5,我是否应该再次使用任何其他软件包将es6转换为es6?
{
"compilerOptions": {
"target": "es5", // Change this to es6
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"outDir": "./wwwroot/app/"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
发布于 2015-12-31 20:35:07
以ES5为目标的目前是一个基准需求
*根据
中不支持
class
- Chrome (latest)
- Android (latest)
注意:这只是最新的。许多将提供可测量的好处的ES6功能仅在最新的浏览器版本中实现。Ie向后兼容性实际上是不存在的。
对于浏览器并不完全支持的其他用例,使用ES6描述可能会更好。
简而言之,在可预见的未来,您应该 ES5,直到浏览器有机会赶上为止。
发布于 2018-06-04 08:45:02
选择哪个目标取决于您支持的浏览器。看一下The ES6 Compatibility Table,我们可以制定关于目标的一般指导方针。只要平台支持大于或等于TypeScript支持,我们就可以估计我们想要的目标:
目标: ES3 -如果您想要支持:
目标: ES5 -如果您想要支持:
目标: ES6 (ES2015) -如果您使用这些功能并希望支持:
目标: ES7 (ES2016) -如果您使用这些功能并希望支持:
三星Safari10.0/iOS 10.2
目标: ES2017 -如果您使用这些功能并希望支持:
target ES2018 -如果您使用这些功能并希望支持:
三星移动基本上无所不能: Edge 18,三星8,Safari 12.0/iOS 11.3
target ES2019 -如果您使用这些功能并希望支持:
火狐基本功能:三星10、Safari 12.1/iOS12.2、Opera移动51
目标ES2020 -这让我们可以使用浏览器,而不是像本文那样处理所有事情:
希望这将给你一个目标的想法,但测试是必不可少的,以保证你支持你想要的平台。可能有一些较小的特性没有在兼容性表中,或者我遗漏了一些东西,所以一定要测试一下。
发布于 2017-05-05 16:36:39
来自Evan Plaice的答案是好的,但它现在是旧的(在撰写本文时几乎18个月)。兼容性表已经发生了很大变化,现在可能可以将ES6 (ES2015)作为目标。查看您需要支持的浏览器的表格。
https://stackoverflow.com/questions/34288787
复制相似问题