获取数组内对象值的联合类型可以通过使用类型推断和类型断言来实现。下面是一种常见的方法:
const arr = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', gender: 'male' },
{ name: 'Charlie', age: 30, gender: 'male' },
];
typeof
和keyof
关键字来获取对象属性的联合类型:type ValueTypes = typeof arr[number][keyof typeof arr[number]];
这里的typeof arr[number]
表示数组中每个元素的类型,keyof typeof arr[number]
表示每个元素的属性名的联合类型。通过这两个类型的组合,我们可以得到数组内对象值的联合类型。
const values: ValueTypes[] = arr.map(obj => Object.values(obj)[0]) as ValueTypes[];
这里使用Object.values(obj)[0]
获取每个对象的第一个属性值,并将其赋给values
变量。由于Object.values()
返回的是unknown[]
类型,我们需要使用类型断言将其转换为ValueTypes[]
类型。
这样,我们就可以通过values
变量来访问数组内对象的值,并且该变量的类型是对象值的联合类型。
请注意,以上方法是一种通用的方式,适用于大多数情况。但是,具体的实现方式可能因编程语言和开发环境而异。在实际开发中,可以根据具体需求和使用的编程语言选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云