TS 是什么?与 JS 的关系?它的特性?
答:
- TS 是 JS 的超集,是一种静态类型检查语言,提供了类型注解,可以在代码编译阶段就检查出数据类型的错误。
- TS 在编译阶段需要编译器编译成纯 JS 来运行,是为开发大型应用而设计的语言。
- TS 的特性如下:
- 类型注解:在变量、函数参数、返回值上声明类型。
- 类型推断:基于赋值自动推断变量类型。
- 接口(interface):定义对象的结构契约。
- 枚举(enum):为一组数值赋予友好的名字。
- 泛型(generics):让类型本身成为参数,复用逻辑。
- 编译时类型检查:编译阶段就能发现类型错误,而不是运行时。
与 JS 的区别
| 维度 | JavaScript | TypeScript |
|---|---|---|
| 类型系统 | 动态类型,运行时检查 | 静态类型,编译时检查 |
| 编译 | 不需要编译(引擎直接执行) | 需要 tsc 编译为 JS 才能运行 |
| 学习曲线 | 灵活,上手快 | 需要理解类型系统 |
| 适合场景 | 小型脚本、原型 | 中大型应用、长期维护项目 |
| 生态 | 库类型多为 any | 自带 .d.ts 或 @types/* 提供类型 |
补充:TS 不会取代 JS,它最终会被编译为 JS。TS 的核心价值是把运行时才能发现的类型错误前移到编译期,并提供更好的编辑器提示与重构能力。新项目建议直接用 TS,老项目可渐进式迁移。
来源整理自:vue3js.cn 面试官系列



