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?
当前回答
ES5, ES6和TypeScript之间的决策树
你介意有一个构建步骤吗?
是-使用ES5 不,继续
你想使用类型吗?
是-使用TypeScript 不-使用ES6
更多的细节
ES5是你所知道的并在今天的浏览器中使用的JavaScript,它就是它,不需要一个构建步骤就可以将它转换成可以在今天的浏览器中运行的东西
ES6(也称为ES2015)是JavaScript的下一个迭代,但它不能在今天的浏览器中运行。有相当多的编译器将导出ES5以便在浏览器中运行。它仍然是一种动态(无类型)语言。
TypeScript提供了一个可选的输入系统,同时引入了JavaScript未来版本(ES6和ES7)的一些特性。
注意:很多编译器(如babel, TypeScript)允许你使用当前JavaScript未来版本的特性,并导出仍然可以在当前浏览器中运行的代码。
其他回答
ES5, ES6和TypeScript之间的决策树
你介意有一个构建步骤吗?
是-使用ES5 不,继续
你想使用类型吗?
是-使用TypeScript 不-使用ES6
更多的细节
ES5是你所知道的并在今天的浏览器中使用的JavaScript,它就是它,不需要一个构建步骤就可以将它转换成可以在今天的浏览器中运行的东西
ES6(也称为ES2015)是JavaScript的下一个迭代,但它不能在今天的浏览器中运行。有相当多的编译器将导出ES5以便在浏览器中运行。它仍然是一种动态(无类型)语言。
TypeScript提供了一个可选的输入系统,同时引入了JavaScript未来版本(ES6和ES7)的一些特性。
注意:很多编译器(如babel, TypeScript)允许你使用当前JavaScript未来版本的特性,并导出仍然可以在当前浏览器中运行的代码。
我在我现在的angular项目中使用Typescript已经有一年半的时间了,虽然偶尔会有一些定义问题,但DefinitelyTyped项目在跟上大多数流行库的最新版本方面做得非常出色。
说到这里,从普通JavaScript过渡到TS有一个明确的学习曲线,你应该考虑到你和你的团队完成这个过渡的能力。如果你要用角1。你在网上找到的大多数例子都需要你把它们从JS翻译成TS,总的来说,没有很多关于使用TS和angular 1的资源。在一起。
如果你打算使用angular 2,有很多使用TS的例子,我认为团队会继续提供TS中的大部分文档,但你当然不必使用TS来使用angular 2。
ES6确实有一些不错的特性,我个人也打算更加熟悉它,但我现在还不认为它是一种可以投入生产的语言。主要是由于当前浏览器缺乏支持。当然,你可以在ES6中编写代码,然后使用转译器将其转换到ES5,这似乎是目前最流行的做法。
总的来说,我认为答案可以归结为你和你的团队乐于学习什么。我个人认为TS和ES6都会有很好的支持和很长的未来,但我更喜欢TS,因为你倾向于更快地获得语言特性,现在工具支持(在我看来)更好一些。
推荐文章
- 如何在Typescript中解析JSON字符串
- 在angularJS中& vs @和=的区别是什么
- 如何/何时使用ng-click调用路由?
- TypeScript中的extends和implements有什么区别
- forEach不是JavaScript数组的函数错误
- 如何用angular 2路由器重新加载当前路由
- 创建组件与Angular-CLI &将它添加到一个特定的模块
- 迭代Typescript Map
- 在Angular JS中的控制器之间传递数据?
- 定义TypeScript回调类型
- 如何在TypeScript中实现睡眠函数?
- 在ng-repeat结束时调用函数
- 在Angular 6中生成服务时,为din提供可注入装饰器的目的是什么?
- 返回一个空的Observable
- 我怎样才能获得承诺的价值?