从JavaScript到TypeScript
前言
首先,本文假定读者已经对JS和TS有一定的基础了解。
不了解的可以移步百度百科:JS、TS
简单对比
简单点说,对于开发人员而言,没有什么能比让错误的代码在一开始就原地爆炸更能保证项目质量。
JS是一种弱类型的解释型语言,上手非常容易,写起来也很灵活,入门非常容易(尤其是对于早期写惯了C/C++,Java的人来说)。
但是很快,你就会发现,即使你写明显错了,也不会有任何提示,直到运行了这段代码,才有可能发现这个错误。而且,项目一大,就会出现这种情况,无法看明白他人写的函数,尤其是那种一层套一层,横跨多个文件的js函数,你根本无法预知函数的参数和返回值到底是什么类型,你需要为此翻看很多文件。你常常要为了搞明白到底是你写错了还是你队友写错了而苦恼。
这非常不利于团队合作,大型项目,工程化开发。
一种新技术、新语言的出现,往往都是为了解决以往不好解决/无法解决的问题,或者是想要更加方便的做某件事情。
TypeScript实际上就是想解决JS类型缺失的问题。Type就是类型。
TS实际上是JS的超集
TS实际上最终会被编译为js代码去执行,他增加了静态类型
,类型注解
,类
,接口
,模块
等功能,在编译时,就会检查各种参数是否正确,在一开始就可以通过IDE/编译器对这种代码报错,让程序员提早修改代码。
因此,对于JS程序员来说,学习TS应该是没有难度,特别平滑的。
TS给我的感觉,介于弱类型和强类型之间,也就是其特点恰好处于JS和C/C++、Java之间,同时兼具了灵活多变和编译报错的功能。
谁在转向TS
时间:2020-12-09
node.js
推出ts-node,这也是其他很多项目/框架可以使用ts的基础。
vue
在2.x版本TS支持得不是很好,依然推荐使用JS开发,至于3.0版本,推荐TS开发。
参考:TypeScript 不适合在 vue 业务开发中使用吗?- 尤雨溪回答
React
当前版本用TS写已经是主流
egg
Egg.js本身并不是使用Typescript开发,但是它提供了相对应的index.d.ts文件,让你可以使用TS引入Egg。
midway
默认用的就是用TypeScript开发。而midway由Egg发展而来。
cocos
作为一个游戏开发引擎,随着版本变化,开发的主要语言从oc到c到lua或js,最终推荐TypeScript。
推荐参考资料
想更多的了解对比,可以看这些文章。
博客园——从 JavaScript 到 TypeScript
JavaScript和TypeScript的对比
TypeScript 解决了什么痛点?
TypeScript VS JavaScript 深度对比
关于类型注解
TypeScript的类型注解和类型推断
类型注解