我的公司正考虑从角度1.5.x升级到角度2.代码库是用ES5编写的,因此转向ES6或TypeScript也在讨论中。
TypeScript在基本JavaScript上添加了一些OOP功能,因为当前代码更多的是函数式编程方法,而不是使用OOP样式(类等),我想知道在迁移到JS时从JS切换到TS的其他好处是什么?角2?
角度2中有多少OOP?
答案 0 :(得分:2)
打字稿并不是关于OOP的。 OOP与类型正交(认为Java与Smalltalk)。 Typescript是关于静态类型验证:你是否使用了一个你认为你正在使用数组的字符串?我实际上是在上周五修改了同事代码中的一个错误,他在那里使用for
循环超过了他认为是数组的长度(Array.prototype.forEach使得一个容易找到的错误)。
静态类型检查值得在代码库中添加类型注释吗?这是一个判断电话。
另一方面,ES6 / ESNext只是提供了更好的编写代码的方法。我不知道有谁可以提出这个论点function(arr) {
var foo = arr[0];
var bar = arr[1];
return foo + bar;
}
优于
([foo, bar]) => foo + bar
对于许多其他功能也是如此,如果你用函数式编写,你的代码库(比如我的)可能会被充斥着
Object.keys(someObj)
.map(k => someObj[k])
.filter...
现在你只有Object.values
。加上大约一百万个其他功能。