白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

TypeScript-面试-枚举enum

2026年10月16日·Admin·1 次浏览

面试题:TS enum 有什么问题?更推荐什么写法?

数字枚举

编译后生成反向映射(值→键),产物体积大;常量枚举 const enum 可内联,但隔离编译、babel 场景可能踩坑。

字符串枚举

无反向映射,但仍生成运行时代码(非 const enum 时)。

常见问题

  1. 运行时存在:与「类型擦除」直觉不一致,tree-shaking 边界需注意。
  2. 合并声明与值/类型双重身份易让新手困惑。
  3. 严格模式下与 erasableSyntaxOnly(TS 7+ 方向)等策略冲突风险。

替代方案(面试加分)

  • 字面量联合 + as const 对象:
const Kind = { A: "a", B: "b" } as const
type Kind = (typeof Kind)[keyof typeof Kind]
  • const enum:确定工具链支持时用。

© 2025 My Blog. Built with Nuxt.js v4