前端高频面试题:TypeScript 篇
TypeScript(TS)已成为现代前端开发的标配,尤其在 React、Vue、Angular 等框架中,几乎是大厂必考点。2026 年面试趋势:更注重类型安全、高级类型工具、实际项目应用和 tsconfig 配置。以下精选高频题,分为基础、中级、高级,并附详细解答和代码示例。
基础篇(必背,考察理解 TS 核心价值)
1. 什么是 TypeScript?它与 JavaScript 的区别是什么?
TypeScript 是 JavaScript 的超集(superset),由 Microsoft 开发,最终编译成纯 JS 运行。 主要区别:
- TS 支持静态类型检查(编译时捕获错误),JS 是动态类型(运行时错误)。
- TS 有接口、泛型、枚举、装饰器等 OOP 特性。
- TS 需要编译(tsc),JS 直接运行。
- TS 提升代码可维护性、IDE 智能提示,但增加学习成本。
2. 为什么大厂前端项目都要用 TypeScript?优势有哪些?
- 类型安全:编译时发现错误(如拼写错、类型不匹配),减少运行时 bug。
- 更好重构:IDE 支持重命名、跳转、自动补全。
- 团队协作:类型作为'文档',明确接口契约。
- 生态支持:React/Vue/Angular 官方推荐 TS。
- 大型项目必备:代码规模大时,纯 JS 容易失控。
原始类型:boolean、number、string、null、undefined、symbol、bigint、void。
对象类型:object、array、tuple(元组)、enum(枚举)。
特殊类型:any(任意,关闭检查,不推荐)、unknown(未知,安全版 any)、never(永不返回)。
any、unknown、never 的区别?
| 类型 | 描述 | 使用场景 | 安全性 |
|---|---|---|---|
| any | 任意类型,关闭类型检查 | 迁移旧 JS 项目、临时绕过 | 低(不推荐) |
| unknown | 未知类型,必须先类型收窄 | API 返回不确定类型 | 高(推荐) |
| never | 永不存在的值(如抛错函数) | 类型推断的底部类型 | - |
示例:
let val: unknown = 'hello';
if (typeof val === ) {
.(val.());
}

