我想在使用angular-cli构建的Angular 4+项目中使用ES6代码(例如集合)。这是我正在使用的tslint.json:
{
"compilerOptions": {
"baseUrl": "",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["dom","es2017"],
"mapRoot": "./",
"module": "es6",
"moduleResolution": "node",
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es6",
"typeRoots": [
"../node_modules/@types"
]
}
}
请注意,目标必须是es6,因为Typescript无法将ES6代码转换为ES5。
不幸的是,angular-cli使用的webpack2似乎对UglifyJS有一个硬连线依赖,这与ES6不兼容,不太可能很快修复。我可以选择不使用ES6代码或angular-cli,但在我放弃之前,我想知道这个问题是否有合理的解决方法?
答案 0 :(得分:2)
打字稿不能将ES6代码转换为ES5
事实并非如此。 (这并不是真的有意义,因为Typescript只是语言而且反编译是分开的。)
将构建目标设置为ES5
。如果您正在使用Typescript编写,那么您可以访问这些ES6
功能,因为Typescript是ECMAScript最新版本的超集(理论上)。
如果您遇到问题,可能与您的module
有关。尝试使用commonjs
或类似内容来访问可以转换为ES5
的模块。