所以javascript是一种解释性语言。但angular是一个javascript框架,但编译。纠正我,如果我错了,但在角度我们将打字稿代码编译成javascript代码,然后解释。为什么我们编译角度?
答案 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系统)创建组件的用例