目前,我使用class-transformer包将可选值转换为默认值。
@IsString()
@IsOptional()
@Transform((description: string) => description || '')
public description: string;出现了两个问题。
是可测试的
因此,基本上,我希望创建一个函数,将可选值转换为默认值,我的当前方法是:
function transformValueIfUndefined<TValue>(value: TValue, fallbackValue: TValue): TValue {
if (value === undefined) {
return fallbackValue;
}
return value;
}现在我可以在Transform装饰器中使用这个函数了。
@Transform((description: string) => transformValueIfUndefined(description, ''))但正如你所看到的,这是不值得的努力。是否有一种方法可以与class-validator和class-transformer一起创建自己的转换装饰器来转换可选值?
我的定制设计师应该是这样的
@TransformOptionalValueIfUndefined('')发布于 2020-04-21 06:52:47
装饰师只是函数,为什么不自己写呢?像这样的东西就足够了:
function TransformValueIfUndefined() {
return Transform((description: string) => description || '')
}@TransformValueIfUndefined()
public description: string;https://stackoverflow.com/questions/61337146
复制相似问题