类构造函数子类不能在没有'new'的情况下调用

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

我目前正在升级所有依赖项,并且面临一个似乎与 @nestjs/swagger 相关的问题以及与较新的 es 目标上的

useDefineForClassFields
相关的打字稿更改。

我面临这个错误,使用目标

es2021
(也尝试了后来的)

TypeError: Class constructor SubClass cannot be invoked without 'new'
    at getEnumValues (repo/node_modules/@nestjs/swagger/dist/utils/enum.utils.js:7:30)
    at createApiPropertyDecorator (repo/node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.js:18:59)
    at ApiProperty (repo/node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.js:9:12)
    at ApiPropertyOptional (repo/node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.js:43:12)

没有什么特别的事情发生,我正在扩展一个类,添加一个类属性,它本身就是一个类。

export class Base {
  @ApiProperty()
  start!: string

  @ApiProperty()
  end!: string
}

export class Child extends Base {
  @ApiPropertyOptional()
  subClass?: SubClass
}

我读过有关打字稿更改的信息,所以我知道发生了什么,但一直无法找到解决方案。这在最新版本中应该如何工作?

typescript nestjs-swagger
1个回答
0
投票
  @ApiPropertyOptional({
    enum: SubClass,
    isArray: true,
    default: [],
  })

发现问题,在我的存储库中有这个不正确的代码,应该是

type
而不是
enum

  @ApiPropertyOptional({
    type: SubClass,
    isArray: true,
    default: [],
  })

这在升级之前并没有抛出错误,因此错误消息有点误导

© www.soinside.com 2019 - 2024. All rights reserved.