目前我使用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('')