角度过程中的脱毛过程2

时间:2017-12-11 12:17:42

标签: angular

因为我是棱角分明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”]指定了什么?

1 个答案:

答案 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