ts 从对象数组中生成类型


const X = [
{
    name: 'main',
},
{
    name: 'deleteDevice',
}]


type Y = 'main' | 'deleteDevice'

请问如何用 X 生成一个 Y 的类型

可以使用as const

const X = [
  {
    name: 'main',
  },
  {
    name: 'deleteDevice',
  }] as const;

const X2 = X.map(item => item.name);

type Y = typeof X2[number];

参考:https://github.com/Microsoft/TypeScript/pull/29510