我目前正在升级所有依赖项,并且面临一个似乎与 @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
}
我读过有关打字稿更改的信息,所以我知道发生了什么,但一直无法找到解决方案。这在最新版本中应该如何工作?
@ApiPropertyOptional({
enum: SubClass,
isArray: true,
default: [],
})
发现问题,在我的存储库中有这个不正确的代码,应该是
type
而不是 enum
。
@ApiPropertyOptional({
type: SubClass,
isArray: true,
default: [],
})
这在升级之前并没有抛出错误,因此错误消息有点误导