TypeScript:给 JavaScript 加上类型的编程语言

TypeScript 拿下了超过 10 万 Star,在前端开源项目中排名第一梯队。

正文顶部截图

TypeScript 是微软开发的开源编程语言,在 JavaScript 的基础上增加了类型系统。编写完成后编译为标准 JavaScript 代码,可以直接在浏览器或 Node.js 中运行。

JavaScript 是动态类型语言,变量不需要声明类型。代码量少的时候开发很快,项目一旦变大,缺少类型约束就会频繁出现运行时错误,重构也缺乏安全感。TypeScript 的类型系统可以在这两个环节帮上忙。

README区域截图

类型标注

TypeScript 允许给变量、函数参数和返回值添加类型。编辑器根据类型信息可以给出精确的自动补全、参数错误提醒、接口跳转等辅助功能。

类型是可选的。你可以在一个 JavaScript 项目中逐步引入 TypeScript,不需要一次性迁移所有文件。

编译和运行

TypeScript 不能直接运行,需要通过编译器转译为 JavaScript。安装方式:

npm install -D typescript

编译单个文件:

tsc hello.ts

编译后的 .js 文件是标准的 ECMAScript 代码。通过 tsconfig.json 可以指定目标版本、模块格式、严格程度等编译选项。

IDE 支持

VS Code 内置了 TypeScript 支持,不需要装插件。类型信息让编辑器的补全准确率大幅提升,在大型项目中体验差距很明显。

应用场景

React、Vue、Angular 三个主流前端框架都支持 TypeScript,官方文档和模板项目默认使用 TypeScript。Node.js 后端、Electron 桌面应用、微信小程序也都有成熟的 TypeScript 支持。

微软自己的 Azure SDK、GitHub CLI 以及 VS Code 本身都是用 TypeScript 编写的。

生态

npm 上主流的 JavaScript 库几乎都提供了 TypeScript 类型定义,DefinitelyTyped 项目维护了超过一万个包的类型声明文件。安装方式通常是在包名前加 @types/,比如 @types/react。

TypeScript 由微软团队维护,每两到三个月发布一个新版本。语言设计参考了 TC39 的 ECMAScript 提案,很多新语法会随着标准推进逐步实现。

与 JavaScript 的关系

TypeScript 是 JavaScript 的超集。所有合法的 JavaScript 代码都可以直接当作 TypeScript 使用,把文件后缀从 .js 改为 .ts 即可。

这让渐进式迁移变得可行。多数团队的做法是新代码用 TypeScript,旧代码保持不动,逐步扩大覆盖范围。

需要注意的地方

TypeScript 增加了编译步骤,构建流程比纯 JavaScript 多一层。对于一次性的脚本或小工具来说,引入 TypeScript 反而增加成本。

泛型在复杂场景下的类型标注会变得很长,可读性下降。实际项目中需要在类型完备和代码简洁之间找到平衡。

TypeScript 用类型系统补上了 JavaScript 在工程化层面的短板,超过 10 万 Star 的数据反映了社区对它的认可。

cript 用类型系统补上了 JavaScript 在工程化层面的短板,超过 10 万 Star 的数据反映了社区对它的认可。

更多推荐