TypeScript 里用 as const 收窄对象字面量类型,能少写很多冗余断言
在维护几个中后台项目时,我经常看到这样的代码:一个配置对象里放了一组状态码和对应的文案,然后在使用时因为类型被推断成 string 而不得不给每个取值加上 as 或者显式注解。比如一个主题色表,声明成 const colors = { primary: '#1677ff', danger: '#ff4d4f' },后面想用 colors.primary 去限制另一个变量的类型时,TypeScript 只认它是 string,于是有人会写 type ColorKey = 'primary' | 'danger' 再手动维护一遍。这其实不是类型系统的问题,而是对象字面量默认被推断成了可变结构。as...