我刚读了一篇关于官方博客angular 5(https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced)的文章。 有关于打字稿变换的讨论。详细说明:
" TypeScript转换 在引擎盖下,Angular编译器现在作为TypeScript转换运行,使得增量重建速度大大加快。 TypeScript转换是作为TypeScript 2.3的一部分引入的新功能,它允许我们挂钩到标准的TypeScript编译管道。"
我想更好地理解它。 转换或编译管道,是什么? TNX!
答案 0 :(得分:2)
这引用了typescript编译器如何生成Javascript代码的内部结构。从2.3开始,编译器采用Typescript AST(抽象语法树)并应用一系列转换(转换管道)。在管道的最后,你得到一个新的AST,这是一个Javascript AST。
从源代码中,这些是当前的变换器:
因此,例如,在为es5
启用jsx
模块并system
模块编译目标时,将包含以下转换:
transformTypeScript - 将删除打字稿特定的注释
transformJsx - 将删除jsx
语法并将其转换为Javascript
transformESNext - 将esnext
转换为es2017
transformES2017 - 将es2017
转换为es2016
transformES2016 - 将es2016
转换为es2015
transformES2015 - 将es2015
转换为es5
(减去发电机)
transformGenerators - 将es2015
生成器转换为es5
transformSystemModule - 将添加模块特定的js代码。
应用所有转换后,将AST写入文件是一项简单的操作。