随着AngularJS 2的发布,文档建议使用三种语言:

我只习惯使用Javascript EcmaScript 5,我想知道这三种语言的优点和缺点是什么?

在提出这个问题时,文档在Typescript上更为发达,而在其他方面(甚至他们自己的语言Dart)则相当薄弱:

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

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

AngularJS 2.0官方网站

推荐答案

Dart使启动变得很容易,因为Dart生态系统(语言、包管理、构建等)为您提供了所需的一切.

TypeScript

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

The Dart and JS version of Angular is generated from TS.
There seem to be lots of issues to get a Angular+TS project up and running (see Angular2 questions here on SO) but there are seed projects available where everything is set up already. I don't know details because I'm using only Dart myself.

For TS there is now 100 which improves the developer experience a lot for Angular2 with TypeScript.

JavaScript, ES5, ES6

如果你是JS纯粹主义者,它可能是适合你的语言.如果不是(如果你是,你可能不会问这个问题),那么我很确定你最好使用Dart或TS.

Dart

Dart是一种很好的语言,有一套工具可以很好地协同工作.

大约在2016/05年,Angular2 Dart是一个独立的项目,与TS和JS版本(截至2016/10年)有很大不同.

  • 路由模块在TS中被多次替换,以使其与脱机模板编译一起工作,但在Dart中没有被替换,因为在Dart中,延迟加载也可以与"旧"路由一起工作.

  • ... NgModule也不是因为同样的原因才被引入Dart的.

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

  • Dart从一开始就进行离线模板编译,但不支持浏览器平台动态编译运行时的组件.

  • 一个新的依赖注入模块似乎正在基于Dagger2(目前尚不可用)为Dart开发,以取代由TypeScript代码自动生成的DI系统.

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

Typescript相关问答推荐

从传递的数组中出现的值设置返回键的类型

在角形加载组件之前无法获取最新令牌

如何使用另一个类型的属性中的类型

如何在不使用变量的情况下静态判断运算式的类型?

TypScript手册中的never[]参数类型是什么意思?

TypeScript泛型参数抛出错误—?&#"' 39;预期"

是否可以根据嵌套属性来更改接口中属性的类型?

我们过go 不能从TypeScript中的联合中同时访问所有属性?

类型{...}的TypeScript参数不能赋给类型为never的参数''

如何根据另一个属性的布尔值来缩小函数属性的返回类型?

如何按不能保证的功能过滤按键?

使用2个泛型类型参数透明地处理函数中的联合类型

从TypeScrip中的其他类型检索泛型类型

布局组件中的Angular 17命名路由出口

编译TypeScrip项目的一部分导致错误

如何使用泛型函数参数定义类型脚本函数

如何通过转换器类继承使用多态将对象从一种类型转换为另一种类型

顶点堆叠的图表条形图未在正确的x轴上显示

如何从JWT Reaction中提取特定值

递归类型别名的Typescript 使用