javascript - AngularJS 2 - 使用哪种语言? ( typescript ,Javascript, Dart )

标签 javascript typescript dart angular

<分区>

随着 AngularJS 2 的出现,文档建议使用三种语言: TypescriptJavascriptDart

我只习惯了 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 使入门变得容易,因为您需要的一切都由 Darts 生态系统一手提供(语言、包管理、构建……)。

typescript

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

Angular 的 Dart 和 JS 版本是从 TS 生成的。
启动和运行 Angular+TS 项目似乎有很多问题(请参阅此处关于 SO 的 Angular2 问题),但有可用的种子项目,其中一切都已设置。我不知道细节,因为我自己只使用 Dart。

对于 TS 现在有 Angular CLI这大大改善了使用 TypeScript 的 Angular2 的开发人员体验。

JavaScript、ES5、ES6

如果您是 JS 纯粹主义者,它可能是适合您的语言。如果不是(如果你是你可能不会问这个问题)那么我很确定你最好使用 Dart 或 TS。 Angular 以多种方式使用类型注释。对于 JS,需要“解决方法”,否则一个简单的类型注释就足够了(主要是依赖注入(inject))。

Dart

Dart 是一种很好的语言,带有一组可以很好地协同工作的工具。 JS/TS 环境导致的很多问题在 Dart 中都得到了优雅的解决。

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

  • Router 模块在 TS 中被多次替换以使其与离线模板编译一起工作,但在 Dart 中没有被替换,因为在 Dart 中延迟加载也适用于“旧”路由器。

  • ...以及 NgModule 也出于同样的原因没有引入 Dart。

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

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

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

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

关于javascript - AngularJS 2 - 使用哪种语言? ( typescript ,Javascript, Dart ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129269/

相关文章:

javascript - 如何在 View 中使用KeyValue对结构

javascript - 根据溢出隐藏和显示一些div

typescript - 与webpack bundle 后,Nestjs应用程序无法运行

Typescript 从默认值推断泛型类型

javascript - 不允许在 Angular 8 中离线使用 PWA

dart - Dart 1 书籍是否仍然与学习 Dart 2 相关

dart - Dart 2 中的 const 何时是可选的?

javascript - 有没有更简单的方法使许多输入等于一个?

javascript - Node.js 检查名称是否与掩码匹配

firebase - Flutter: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)