My daily job is client developer using AngularJS. We are evaluating if we want to go with TypeScript. I did some research on typescript and almost every JavaScript package I need must have definition type files. I found that is not very convenient, especially if I would like to try something new and they don't have the definition for it. Its really frustrating. (Even the current jQuery definition gives me some problems if I want to use typescript 1.5 beta). I started looking at ES6 and it looks similar to TypeScript. Should I just use ES6 instead? Also, I heard angular 2 will have full support for TypeScript, will that be one reason I should stay with it?
我在我现在的angular项目中使用Typescript已经有一年半的时间了,虽然偶尔会有一些定义问题,但DefinitelyTyped项目在跟上大多数流行库的最新版本方面做得非常出色。
说到这里,从普通JavaScript过渡到TS有一个明确的学习曲线,你应该考虑到你和你的团队完成这个过渡的能力。如果你要用角1。你在网上找到的大多数例子都需要你把它们从JS翻译成TS,总的来说,没有很多关于使用TS和angular 1的资源。在一起。
如果你打算使用angular 2,有很多使用TS的例子,我认为团队会继续提供TS中的大部分文档,但你当然不必使用TS来使用angular 2。
ES6确实有一些不错的特性,我个人也打算更加熟悉它,但我现在还不认为它是一种可以投入生产的语言。主要是由于当前浏览器缺乏支持。当然,你可以在ES6中编写代码,然后使用转译器将其转换到ES5,这似乎是目前最流行的做法。
总的来说,我认为答案可以归结为你和你的团队乐于学习什么。我个人认为TS和ES6都会有很好的支持和很长的未来,但我更喜欢TS,因为你倾向于更快地获得语言特性,现在工具支持(在我看来)更好一些。
ES5, ES6和TypeScript之间的决策树
你介意有一个构建步骤吗?
是-使用ES5 不,继续
你想使用类型吗?
是-使用TypeScript 不-使用ES6
更多的细节
ES5是你所知道的并在今天的浏览器中使用的JavaScript,它就是它,不需要一个构建步骤就可以将它转换成可以在今天的浏览器中运行的东西
ES6(也称为ES2015)是JavaScript的下一个迭代,但它不能在今天的浏览器中运行。有相当多的编译器将导出ES5以便在浏览器中运行。它仍然是一种动态(无类型)语言。
TypeScript提供了一个可选的输入系统,同时引入了JavaScript未来版本(ES6和ES7)的一些特性。
注意:很多编译器(如babel, TypeScript)允许你使用当前JavaScript未来版本的特性,并导出仍然可以在当前浏览器中运行的代码。
推荐文章
- Angular 5 -复制到剪贴板
- TypeScript枚举对象数组
- Ng-repeat结束事件
- Angular 2显示和隐藏一个元素
- 缓存一个HTTP 'Get'服务响应在AngularJS?
- 具有构造签名的接口如何工作?
- 'React'指的是一个UMD全局,但当前文件是一个模块
- Angular 2中的“component”不是一个已知的元素
- 从ng-click获取原始元素
- Angular JS:当我们已经有了具有作用域的指令控制器时,指令的link函数还需要什么?
- Angularjs的ng-model不能在ng-if中工作
- AngularJS禁用了开发机器上的部分缓存
- TypeScript错误:属性“X”在类型“Window”上不存在
- 如何在AngularJS中动态添加指令?
- 我怎么能计算在打字稿2日期之间的时间