因为我是棱角分明2并且正在学习。
我使用链接https://www.tutorialspoint.com/typescript/typescript_environment_setup.htm
引用了角度2教程在这里,我知道打字稿正在编译成javascript。
在编码angular 2 apps时,我发现在tsconfig.json文件中,如下所示:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
这里的“目标”:“es5”规范告诉我们将打字稿转换为es5标准,即ECMAScript2009和“lib”:[“es2017”,“dom”]规范告诉它使用es2017库。
任何人都可以澄清角2的转化概念吗?
我们可以将“目标”:“es5”改为es6,即ECMAScript2015吗?
实际上“lib”:[“es2017”,“dom”]指定了什么?
答案 0 :(得分:2)
任何人都可以澄清角度2的转化概念吗?
透明代码与编译过程类似,但有一个很大的区别。
正在编译:来自高级语言的代码将转换为机器级语言。
透明度:高级语言的代码会转换为其他高级语言。
所以在Angualr中,Transpile意味着您在Typscript中编写的内容将转换为另一种高级语言,即Javascript。这是因为所有现代浏览器都只能理解Javascript。
我们可以更改"目标":" es5"到es6,即ECMAScript2015?
实际上" lib":[" es2017"," dom" ]指定?
为此,您可以阅读https://angular.io/guide/typescript-configuration,是的,您可以将es5更改为es6
刚更新:ES5是目前的稳定版本,所以如果设置目标ES5,编译器会根据ES5版本生成javascript文件。如果将其更改为ES6,则会根据Es6标准生成javascript文件;但是,并非所有浏览器都完全支持ES6。
为了能够在TS源中使用ES标准库中的类,您应该使用lib选项并指定源中使用的所有标准ES6库接口。例如,要使用ES6和DOM中的Reflect对象或Array.from,请配置以下内容:
{
"compilerOptions": {
"lib": ["es6", "dom"],
}
}
在此处阅读更多内容:https://blog.angularindepth.com/configuring-typescript-compiler-a84ed8f87e3