我在 NestJs Swagger ApiProperty 类型生成方面遇到一些小问题。 最初,一切都很好,因为我有 ENUM。然而,我从中获取信息的第 3 方添加了一些新值,突然我的 API 开始无法通过验证。
为了防止这种情况,我想将 ENUM 与字符串混合以制作通配符。
可悲的是我无法让它发挥作用。 我尝试使用 oneOf 但一旦我这样做,OpenApi 就不再生成 ENUM :-(
export enum VehicleTypes {
CAR = 'Car',
BUS = 'Bus',
TRUCK = 'Truck'
}
@ApiProperty({
oneOf: [
{ type: 'string' },
{
type: 'enum',
enum: [...Object.values(VehicleTypes)],
},
],
})
@Expose()
vehicleType: VehicleTypes | string;
如何创建一个需要来自 ENUM 的值或最终是字符串的类型?
你可以试试这个
@ApiProperty({
required: true,
example: VehicleTypes.CAR,
enum: VehicleTypes,
})
@IsEnum(VehicleTypes)
vehicleType: VehicleTypes | string;