我可以使用混合的es5 / es2015 AngularJS应用程序吗?

时间:2017-04-15 14:16:08

标签: javascript angularjs ecmascript-6

在我的工作中,我们有一个用ES5编写的大型AngularJS应用程序,计划很快迁移。在迁移到任何其他JS框架(Angular 2+或React)之前,我想将较小的步骤迁移到ES2015。 但是,由于它是一款生产大型应用,如果我们可以逐步处理这种迁移会更容易。

我知道有很多关于AngularJS和ES2015的教程,但我找不到任何解决混合ES5和ES2015文件的情况。

此外,当前的ES5应用程序使用延迟加载的路由和ocLazyload + ui-router,我不知道这将如何与SystemJS或Webpack等ES2015模块加载器一起使用。

任何人都知道如何处理这种特殊情况?

提前致谢。

1 个答案:

答案 0 :(得分:1)

ES2015只是纯JavaScript,具有更丰富的API和大量的语法糖。例如,在ES6中使用class时,这不是该语言中的新数据结构。这只是隐藏JavaScript原型性质的语法糖。在幕后,它仍然是一种功能。

所以你开发一个应用程序,你当然可以混合使用ES5和ES6。如果您使用BabelTraceur编译代码,则应该有一个有效的输出,因为ES5是有效的JavaScript。

如您所知,Angular 2使用TypeScript。但TypeScript与CoffeeScript不同。这不是编译为JavaScript的另一种语言。微软将其定义为JavaScript的超集。实际上,如果您使用最小的ES5代码并尝试使用tsc进行编译,它将起作用。

所以是的,你应该能够逐步进行迁移。 :)