前端高频面试题:TypeScript 核心考点与实战解析
TypeScript 已成为现代前端开发的标配,尤其在 React、Vue、Angular 等框架中,几乎是大厂必考点。当前面试趋势更关注类型安全、高级类型工具、实际项目应用和tsconfig 配置。以下精选高频题,分为基础、中级、高级,并附详细解答和代码示例。
基础篇(必背,考察理解 TS 核心价值)
TypeScript 是什么?它与 JavaScript 的区别
TypeScript 是 JavaScript 的超集,由 Microsoft 开发,最终编译成纯 JS 运行。
主要区别:
- 静态类型检查:TS 在编译时捕获错误,JS 则是运行时错误。
- OOP 特性:TS 支持接口、泛型、枚举、装饰器等。
- 编译过程:TS 需要
tsc编译,JS 直接运行。 - 维护性:TS 提升 IDE 智能提示和代码可维护性,但增加学习成本。
为什么大厂项目都要用 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 = ;
( val === ) {
.(val.());
}

