打字稿,Javascript和飞镖。
我只习惯了Javascript EcmaScript 5,我想知道这三个的强度和弱点是什么?
在问这个问题的时候,文档是更加发达的Typescript和漂亮的苗条其他人(甚至他们自己的语言Dart):
> Typescript:4教程,16开发人员指南,4测试指南
> Javascript:0教程,4开发人员指南,0测试指南
> Dart:0教程,14开发人员指南,0测试指南
我应该改变我的开发使用Javascript的习惯,并遵循Angular 2使用Typescript建议的习惯?它真的改变了Javascript的概念吗?
TypeScript
对于TS,有最多的资源(文档,…),因为有一个巨大的用户群。
Dart和JS版本的Angular是从TS生成的。
似乎有很多问题,以获得一个Angular TS项目启动和运行(见Angular2问题在这里SO),但有种子项目可用,一切已经建立。我不知道细节,因为我只使用Dart自己。
对于TS现在有Angular CLI,它改善了Angular2的TypeScript的开发者体验。
JavaScript,ES5,ES6
如果你是一个JS纯粹主义者,它可能是你正确的语言。如果没有(如果你是你可能不会问这个问题),那么我相信你最好使用Dart或TS。
Angular使用类型注释在几个方面。使用JS需要“解决方法”,否则一个简单的类型注释就足够了(主要是依赖注入)。
镖
Dart是一个很好的语言与一组工具,一起工作良好。
很多问题的JS / TS环境导致Dart解决优雅。
自从2016/05年左右Angular2 Dart是一个独立的项目,与TS和JS版本(截至2016/10)有很大不同。
>在TS中多次替换的路由器模块使其与离线模板编译工作,在Dart中没有被替换,因为在Dart延迟加载也可以与“老”路由器正常工作。> …而且NgModule也没有介绍给Dart因为同样的原因。>为TS创建的新的Forms模块未移植到Dart。> Dart从一开始就有离线模板编译,但不支持browser-platform-dynamic在运行时编译组件。>一个新的依赖注入模块似乎正在进行中的Dart基于Dagger2(目前还不可用)替换自动生成的TypeScript代码的DI系统。> Angular2 Dart强烈关注构建输出大小和运行时性能,但是AFAIK支持多平台支持(如服务器端渲染)已被放弃。