TypeScript 前端开发核心面试题解析
TypeScript 已成为现代前端开发的标配,尤其在 React、Vue、Angular 等主流框架中,几乎是技术面试的必考点。当前趋势更看重类型安全、高级类型工具的实际应用以及tsconfig 配置的深度理解。以下精选高频题目,分为基础、进阶、高阶三个部分,结合实战场景进行解析。
基础篇:理解 TypeScript 的核心价值
1. TypeScript 与 JavaScript 的区别
TypeScript 是 JavaScript 的超集,由 Microsoft 开发,最终编译为纯 JS 运行。核心差异在于:
- 静态类型检查:TS 在编译时捕获错误,JS 则是运行时错误。
- 特性丰富:支持接口、泛型、枚举、装饰器等面向对象特性。
- 维护性:提升 IDE 智能提示与代码可维护性,但需承担一定的学习成本。
2. 大厂为何推崇 TypeScript?
- 类型安全:减少拼写错误或类型不匹配导致的运行时 Bug。
- 重构友好:IDE 支持重命名、跳转与自动补全,降低重构风险。
- 团队协作:类型定义充当'文档',明确接口契约。
- 大型项目必备:随着代码规模扩大,纯 JS 容易失控,TS 能有效约束边界。
3. 基本类型与特殊类型
原始类型包括 boolean、number、string、null、undefined、symbol、bigint、void。对象类型涉及 object、array、tuple、enum。
特殊类型中,any 关闭检查(不推荐),unknown 是安全版的任意类型,never 代表永不返回的值。
any、unknown、never 的区别
| 类型 | 描述 | 使用场景 | 安全性 |
|---|---|---|---|
| any | 任意类型,关闭检查 | 迁移旧项目、临时绕过 | 低 |
| unknown | 未知类型,需类型收窄 | API 返回不确定类型 | 高 |
| never | 永不存在的值 | 抛错函数、底部类型 | - |
示例:
let val: unknown = 'hello';
if (typeof val === 'string') {
// 类型收窄后可以使用 string 方法
.(val.());
}

