TypeScript Enum 还有用吗?February 12, 2022 · 4 min readTS 5.0+ 起 enum 已经从"首选"变成"备选"——能 as const 对象就别 enum。 三种 enum 类型:数字(自动递增 + 反向映射)、字符串、异构(不推荐) 数字 enum 的坑:编译后是 JS 对象,无法 tree-shake,反向映射易踩坑 字符串 enum:tree-shake 友好,但运行时仍有开销 const enum:跟 isolatedModules 冲突,TS 5.0 起不再推荐 首选替代:as const 对象 + 联合类型,零运行时开销
TypeScript 基础类型速查February 6, 2022 · 4 min readTS 基础类型 10 年没变,但 几个反直觉的 细节 容易踩坑。 原始类型:boolean / number / string / bigint / symbol / null / undefined unknown > any:必须先 narrow 才能用,比 any 安全 三个长得像:object / Object / {} 是三种不同类型 void 不只是 "无返回":也指代 undefined 这个值 Tuple 陷阱:长度不可越界,但 push() 能扩