TypeScript 基础知识速览
一、类型系统
1. 常见类型
string number boolean null undefined any unknown never void。
2. 联合与交叉
联合 A | B 表示“其一”;交叉 A & B 表示“同时满足”。
3. 类型别名与接口
type 适合表达式组合;interface 适合对象结构约束与扩展。
4. 类型断言
仅告诉编译器“你信我”,不会做运行时转换。
二、函数与对象
1. 函数签名
明确参数类型、返回值、可选参数、默认参数与剩余参数。
2. 对象类型
尽量为对象字段标注边界,减少 any 扩散。
3. 元组与枚举
元组强调定长定序;枚举适合有限状态,但现代项目可用字面量联合替代。
三、泛型
1. 泛型函数
“类型参数化”替代重复代码,复用时保持类型信息。
2. 泛型约束
<T extends X> 让泛型在灵活和安全之间平衡。
3. 泛型工具类型
高频:Partial、Required、Pick、Omit、Record。
四、面向对象
1. 类成员修饰符
public 默认公开,private 类内可见,protected 子类可见。
2. 抽象类与实现
抽象类定义规范;子类负责完整实现细节。
五、工程配置
1. 编译命令
tsc 单次编译,tsc -w 监听模式。
2. tsconfig 核心项
重点关注:target、module、strict、baseUrl、paths、types。
3. 严格模式建议
新项目默认开启 strict,逐步消除隐式 any。
30 秒口述模板
我会把「TypeScript」分成三层来讲:先讲核心概念和它解决的问题,再讲一个高频场景与实现思路,最后补充常见坑点和优化方向。这样既能回答基础问题,也能接住面试官追问。
2 分钟口述模板
如果展开讲,我会按“定义 -> 原理 -> 场景 -> 取舍”四步回答。先说明「TypeScript」解决的核心问题和边界;再讲 1 到 2 个关键机制,解释为什么这样设计;然后结合一个真实业务场景说明如何落地;最后补充常见坑点、性能或稳定性优化,以及与相近方案的取舍标准。
这样回答的好处是:既有原理深度,也有工程落地感,面试官继续追问到实现细节时也能自然展开。