Ich arbeite an einem TypeScript-Projekt und wir verwenden ES2017 als Ausgabeziel, sowie eine der Bibliotheken, weil es dann durch Babel gehen wird, und wir wollen Unterstützt die neuesten Funktionen für "Env", auf das wir in Babel abzielen.TypeScript TSConfig CompilerOptions ES2017 Ziel und Lib
Alles scheint gut zu funktionieren, also mache ich mir keine Sorgen. Ich weiß jedoch nicht, was hinter den Kulissen vor sich geht oder was die "lib" -Option wirklich tut (außer meiner IDE zu sagen, was ich tun kann, wie zB Ops, Promises, etc.), und wenn es mehr ist/weniger effizient, um die höchste Ausgabe von TypeScript zu spezifizieren, um dann zu einem ganz bestimmten Ziel in Babel kompiliert zu werden. Dies passiert auch durch WebPack, also nutzen wir das Tree Shaking aus. Die zweite Frage ist, wenn "ES2017" in der Lib enthalten ist, schließt das alle Funktionen in ES2015 und ES2016 ein (mit anderen Worten, gibt es einen Grund, ES2015 und/oder ES2016 aufzunehmen, mit ES2017 in der Liste?)?
){
"compilerOptions": {
"target": "ES2017",
"module": "ES2015",
"moduleResolution": "Node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"allowSyntheticDefaultImports": true,
"noEmitHelpers": true,
"importHelpers": true,
"pretty": true,
"alwaysStrict": true,
"lib": [
"DOM",
"ES2017",
"DOM.Iterable",
"ScriptHost"
],
"baseUrl": "./client",
"paths": {
"styles/*": ["./app/styles/*"],
"core/*": ["./app/core/*"],
"components/*": ["./app/components/*"],
"containers/*": ["./app/containers/*"],
"assets/*": ["./assets/*"],
"config/*": ["./config/*"]
}
},
"files": [
"./client/custom-typings.d.ts",
"./client/app/app.ts"
]
}
Als Nebenwirkung, wenn "letzten 1 Chrome-Version" in Babel "Env" Targeting, es kaum Keinerlei transpiling überhaupt, was ziemlich aufregend. Wir erstellen nur Prototypen, nicht Produktionscode, also fügen wir speziell Browser hinzu, die wir unterstützen müssen, wenn wir sie unterstützen müssen, aber fast nie etwas, das nicht die letzten 1 oder 2 Versionen von Chrome ist.