为何Angular编译

时间:2017-07-16 05:17:06

标签: angular typescript

所以javascript是一种解释性语言。但angular是一个javascript框架,但编译。纠正我,如果我错了,但在角度我们将打字稿代码编译成javascript代码,然后解释。为什么我们编译角度?

2 个答案:

答案 0 :(得分:3)

Angular构建在Typescript上,而不是Javascript。由于Typescript只是一种语言扩展(wiki),浏览器无法解释它。

编译器(或更精确的Transpiler)将Angular-Typescipt代码转换为浏览器可以解释的Javascript-Code。

答案 1 :(得分:1)

从TypeScript转换为JavaScript在这里称为编译 编译并不意味着在这种情况下创建二进制代码 对于这种翻译,也使用术语transpilation而不是编译。

Angular中的编译步骤还为Angular特定视图绑定语法生成JavaScript代码like(单击)=" myClickHandler($ event)or [(ngModel)] =&#34 ; someValue"`以及组件和指令实例化 这称为AoT编译,但与TypeScript-to-JavaScript编译无关,而是与AngularJS 1.x中也存在的组件编译步骤相关。

在使用AoT的Angular 2/4中,Angular组件模板在编译时进行解析,并由生成的TypeScript代码替换(然后将其转换为JavaScript)。 这样,浏览器在加载Angular应用程序后不必解析组件模板并创建绑定,而只需运行已包含的代码。

还有一个DynamicModule允许在运行时执行此操作,以便在运行时从仅在运行时可用的数据(如CMS系统)创建组件的用例