AngularJS 2 - 使用哪种语言?(打字稿,Javascript,Dart)

Elf*_*yer 42 javascript dart typescript angular

随着AngularJS 2出来,该文档暗示三种语言: Typescript,JavascriptDart.

我只习惯Javascript EcmaScript 5,我想知道这三者的优点和缺点是什么?

在提出这个问题的时候,文档更多地是在Typescript上开发的,而在其他文档上则相当渺茫(甚至是他们自己的语言Dart):

  • 打字稿: 4个教程,16个开发人员指南,4个测试指南
  • Javascript: 0教程,4个开发人员指南,0个测试指南
  • Dart: 0教程,14个开发人员指南,0测试指南

我是否应该改变使用Javascript进行开发的习惯并遵循Angular 2使用Typescript建议的内容?它真的改变了Javascript的概念吗?

AngularJS 2.0官方网站

Gün*_*uer 31

Dart让您轻松入手,因为您需要的一切都是由Darts生态系统提供的(语言,包管理,构建......).

打字稿

对于TS,可用的资源最多(文档,...),因为有庞大的用户群.

Angular 的Dart和 JS版本是从TS生成的.
启动和运行Angular + TS项目似乎有很多问题(请参阅SO上的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出于同样的原因,也没有被介绍给达特.

  • 为TS构建的新Forms模块尚未移植到Dart.

  • Dart从一开始就进行了离线模板编译,但不支持在运行时编译组件的browser-platform-dynamic.

  • 新的依赖注入模块似乎正在基于Dagger2(目前尚不可用)的Dart进行,以替换从TypeScript代码自动生成的DI系统.

  • Angular2 Dart非常关注构建输出大小和运行时性能,但AFAIK对多平台支持(如服务器端呈现)的支持被删除.

  • 不知道你的意思.Dart是一个很好的语言和平台,可以使用Angular2.仅仅因为选择TS而不是Dart并不意味着它在各方面都具有优势. (4认同)
  • 非常感谢您的回答.我不知道"TS用于开发Angular2本身",并且使用Javascript需要"workarouds".我肯定会尝试使用TypeScript.;) (2认同)