TypeScript 高频追问 Q&A
A: 对象结构扩展优先 interface;联合/映射类型用 type 更灵活。(深入阅读:TypeScript 接口)
约 2 分钟
TypeScript 高频追问 Q&A
1. Q: interface 和 type 怎么选?
A: 对象结构扩展优先 interface;联合/映射类型用 type 更灵活。(深入阅读:TypeScript 接口)
2. Q: 泛型的价值是什么?
A: 在复用逻辑时保留类型信息,减少 any。(深入阅读:TypeScript 泛型)
3. Q: unknown 和 any 区别?
A: unknown 更安全,使用前必须缩小类型。(深入阅读:TypeScript 数据类型)
4. Q: 类型守卫常见方式?
A: typeof、instanceof、in、自定义谓词函数。(深入阅读:类型兼容性与类型保护)
5. Q: TS 在工程中的核心收益?
A: 提前发现类型问题、提升重构安全性。(深入阅读:TypeScript 与 JavaScript 的区别)
6. Q: 函数重载的实现签名会暴露给调用者吗?
A: 不会。前面的重载签名描述可用调用,最后的实现签名只在函数体内承接运行时分支;实现必须兼容所有公开签名。详见 TypeScript 面试真题补充。(深入阅读:函数签名:可选、剩余与重载)
7. Q: 枚举和字面量联合类型怎么选?
A: 枚举会生成运行时代码并可能带双向映射;只需要编译期约束时,字面量联合通常更轻量。(深入阅读:TypeScript 枚举类型)
8. Q: TS 装饰器是类型检查还是运行时能力?
A: 传统装饰器会参与编译后的运行时代码,需要匹配 experimentalDecorators 和具体提案语义,不能只当作类型标注。(深入阅读:TypeScript 装饰器)
9. Q: as User 会自动校验对象吗?
A: 不会。类型断言只影响编译器,运行时仍需用校验器或类型守卫验证不可信输入。(深入阅读:类型推断和类型断言、类型保护)