【发布时间】:2019-08-04 12:12:28
【问题描述】:
每当我在 TypeScript 中有一个联合类型的字符串时,我需要做的一件很常见的事情就是获取这些字符串文字的数组。
export type UserPersona =
| "entrepreneur"
| "programmer"
| "designer"
| "product_manager"
| "marketing_sales"
| "customer_support"
| "operations_hr"
我觉得有点麻烦,但是每当我需要这样做时,我都会创建一个对象映射,将所有内容再次键入,然后获取可以转换类型的键。
const userPersonaMap: { [key in UserPersona]: true } = {
entrepreneur: true,
programmer: true,
designer: true,
product_manager: true,
marketing_sales: true,
customer_support: true,
operations_hr: true,
}
export const userPersonas = Object.keys(userPersonaMap) as Array<UserPersona>
我不喜欢这种方法的几点:
- 我必须输入两次。
- 我必须转换类型。
- 存在运行时开销 - 理所当然,这是微不足道的,但我一直这样做。
【问题讨论】:
-
哦,是的。那就更好了!
标签: typescript