随着AngularJS 2的推出,该文档建议使用三种语言:
Typescript
,Javascript
和Dart
。
我只习惯使用Javascript EcmaScript 5,我想知道这三者的优点和缺点是什么?
在提出这个问题的时候,文档在Typescript上更加发达,而在其他文档上则相当渺茫(甚至是他们自己的语言Dart):
我是否应该改变使用Javascript进行开发的习惯并遵循Angular 2使用Typescript建议的内容?它真的改变了Javascript的概念吗?
AngularJS 2.0官方网站
答案 0 :(得分:31)
Dart让您轻松入手,因为您需要的一切都是由Darts生态系统提供的(一方面是语言,包管理,构建......)。
<强>打字稿强>
对于TS,可用资源最多(文档,...),因为有庞大的用户群。
Angular的 Dart和 JS版本是从TS生成的
似乎有许多问题需要启动和运行Angular + TS项目(请参阅此处的Angular2问题)但是有一些种子项目可用于已经设置好所有内容。我不知道细节,因为我自己只使用Dart。
对于TS,现在有Angular CLI,它通过TypeScript为Angular2提供了很多开发人员体验。
JavaScript,ES5,ES6
如果你是JS纯粹主义者,它可能是适合你的语言。如果不是(如果你可能不会问这个问题)那么我很确定你最好不要使用Dart或TS。 Angular以多种方式使用类型注释。使用JS需要“变通办法”,否则简单的类型注释就足够了(主要是依赖注入)。
<强>达特强>
Dart是一种很好的语言,它有一套可以很好地协同工作的工具。 对于Dart来说,JS / TS环境导致的许多问题都得到了优雅的解决。
自2016/05左右以来,Angular2 Dart是一个独立项目,与TS和JS版本有很大不同(截至2016/10)。
多次在TS中替换以使其与离线模板编译一起使用的路由器模块在Dart中未被替换,因为在Dart中延迟加载也适用于“旧”路由器。
...并且NgModule
也没有因为同样的原因被引入Dart。
为TS构建的新Forms模块尚未移植到Dart。
Dart从一开始就进行了离线模板编译,但不支持在运行时编译组件的browser-platform-dynamic。
基于Dagger2(目前尚不可用)的Dart似乎正在进行新的依赖注入模块,以替换从TypeScript代码自动生成的DI系统。
Angular2 Dart非常关注构建输出大小和运行时性能,但AFAIK对多平台支持(如服务器端呈现)的支持被删除。