NestJs Swagger 与枚举混合类型

问题描述 投票:0回答:1

我在 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 的值或最终是字符串的类型?

nestjs swagger openapi
1个回答
0
投票

你可以试试这个

@ApiProperty({
  required: true,
  example: VehicleTypes.CAR,
  enum: VehicleTypes,
 })
@IsEnum(VehicleTypes)
vehicleType: VehicleTypes | string;
© www.soinside.com 2019 - 2024. All rights reserved.