typescript 将字符串数组转为联合类型

ts中,如何将字符串数组转为联合类型,比如:

const arr = ['name', 'age', 'location', 'email'];

// 通过类型操作之后得到下面这种类型
type arrType = 'name' | 'age' | 'location' | 'email'

说明: 将字符串数组中的每一个字符串都作为联合类型中的一个类型

最佳答案

type arr = ('name'| 'age'| 'location'| 'email')[];

type UnionType = T extends (infer P)[] ? P : never;

type arrType = UnionType;

这样?