初识 TypeScript:为 JavaScript 加上类型
第 1 节 概述
2012 年,微软发布了一门新语言——TypeScript。
它给 JavaScript 加上了类型系统。简单说就是:写代码时就能发现类型错误,不用等到运行时报错。
TypeScript 是 JavaScript 的超集。所有 JS 代码都是合法的 TS 代码。你可以在 JS 基础上,逐步加上类型注解。
目前 TypeScript 已成为前端开发的标配。Vue 3、React、Angular 都内置了对它的支持。
第 2 节 TypeScript 解决了什么问题
JavaScript 是动态类型语言。变量是什么类型,只有运行时才知道:
| |
这段代码没有语法错误,但结果不对。问题直到运行时才暴露。
TypeScript 在开发阶段就能发现这个问题:
| |
| 对比 | JavaScript | TypeScript |
|---|---|---|
| 类型检查 | 运行时 | 编译时(写代码时) |
| 类型注解 | 不支持 | 支持 |
| 浏览器执行 | 直接执行 | 需先编译为 JS |
| 学习曲线 | 低 | 中(多学一个类型系统) |
TypeScript 不改变 JavaScript 的运行行为。编译后,所有类型信息都会被抹除,生成的是干净的 JavaScript 代码。
第 3 节 安装与编译
TypeScript 通过 npm 安装:
| |
安装后,可以用 tsc 命令编译单个文件:
| |
这会生成一个同名的 index.js 文件。
如果希望 TS 文件修改后自动编译:
| |
在现代前端项目(Vue、React)中,构建工具(Vite、Webpack)会自动处理 TS 编译。你通常不需要手动运行 tsc。
第 4 节 tsconfig.json
项目根目录下的 tsconfig.json 是 TypeScript 的配置文件。
通过 tsc --init 可以快速生成一个:
| |
几个常用选项:
| 选项 | 作用 | 推荐值 |
|---|---|---|
target | 指定输出的 JS 版本 | ES2020 或更高 |
strict | 开启所有严格类型检查 | true |
outDir | 编译后的文件放哪里 | ./dist |
rootDir | 源码目录 | ./src |
开启 strict 后,TypeScript 会执行最严格的类型检查。初学阶段可能觉得约束多,但习惯后你会发现——越严格,越安全。
第 5 节 第一个 TypeScript 程序
创建一个项目测试一下:
| |
在 src 目录下创建 greet.ts:
| |
编译并运行:
| |
输出:你好,TypeScript!
现在你有了环境、配置文件和编译流程。但关于类型,我们还只是浅尝辄止。
类型到底是什么? 从下一篇开始,我们一步步认识 TypeScript 的类型系统。