最近几年,TypeScript 越来越流行 —— 这种流行体现在整个前端圈里:从 React TSX 到 Angular 以及今年 Vue 3 TypeScript,又或者我自己主观上感受到身边的人都在使用 TypeScript 了 —— 很多人都说,写了 TS 就不愿意再写 JS 了,为什么 TypeScript 会变得如此流行呢?
# 用脚投票 ↵
很显然,一定是 TypeScript 解决了 JavaScript 用户所遇到的痛点,导致各类不同的 JS 用户用脚投票了。
# 丰富的语法提示
在 VSCode 等支持 TS 的编辑器中可以享受到真正意义上的语法提示(不是项目关键字搜索的残废玩意)能支持常用 IDE 功能,如重命名,重构,移动文件等等,极大的提高了开发效率。
TypeScript 搭配 VSCode 使用
==> 丰富的语法提示
==> 想偷懒的用脚投票
# 多人 JS 项目开发
多人 JS 项目开发如果只用 JS,项目将很快变成屎山,别人写的你看不懂,你写的别人不一定懂。实际开发中要各种调试和 console.log,关于这点参与过实际开发的朋友应该深有体会了,解决这些问题需要提高代码质量,而提高代码质量最快的途径是引入一个禁用 any 并开启严格模式的 TypeScript。
TypeScript 各类新特性
==> 严格模式且 eslint 禁用 any 即可快速提高代码质量
==> 做技术选型的用脚投票
# ECMAScript 转译
作为写 js 的,大概率是自己整过 babel / webpack 等配置的,一般来说都是找文档到处抄,有时还会遇到各种奇奇怪怪的问题 …
而 TS 作为转译器,可以转译绝大多数 ECMAScript 特性,使用极其简单,配置 tsconfig.json 的 target 即可 —— 在大部分情况下,有了 tsc 你就不需要 babel 了。
TypeScript TSC 转译
==> 快速转译各个版本的 ECMAScript
==> 不想整一坨 babel/webpack 配置的用脚投票
# 社区 TypeScript 运动
TypeScript 运动愈演愈烈,现在社区主流框架和新概念都是 typescript 兼容的,都有提供 typescript 解决方案。
JS 社区越来越离不开 TS
==> 大家都在用, 用过的都说好
==> 大家自然而然的用脚投票了
# 类型检查
类型检查或许并不是想象中的检查个 undefined 那么简单,代码里的类型实质上是构造了一个大命题 —— 这段代码的 TS 类型安全吗,TypeScript 的作用就是去机械地根据语法对其进行证明,如果有类型错误,证明就不会完成,程序也是不安全的,这也是为什么不要使用 any 的原因。
TypeScript 类型检查
==> 编译器证明类型命题
==> 程序正确性爱好者用脚投票
# JavaScript 的未来 ↵
如果 JS 在这几年内都解决不了大家的问题,它很有可能会成为浏览器里的汇编,成为一门很重要但是没什么人直接写的语言。