Que*_*n3r 8 typescript typescript-decorator class-transformer
目前我使用该class-transformer包将可选值转换为默认值
@IsString()
@IsOptional()
@Transform((description: string) => description || '')
public description: string;
Run Code Online (Sandbox Code Playgroud)
出现了两个问题。
所以基本上我想创建一个将可选值转换为默认值的函数,我当前的方法是:
function transformValueIfUndefined<TValue>(value: TValue, fallbackValue: TValue): TValue {
if (value === undefined) {
return fallbackValue;
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
Transform现在我可以在装饰器中使用这个函数
@Transform((description: string) => transformValueIfUndefined(description, ''))
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,这不值得付出努力。有没有一种方法可以创建我自己的转换装饰器以及class-validator转换class-transformer可选值?
我的自定义装饰器应该是这样的
@TransformOptionalValueIfUndefined('')
Run Code Online (Sandbox Code Playgroud)
Eug*_*e M 20
装饰器只是函数,那么为什么不编写自己的函数呢?像这样的东西应该足够了:
function TransformValueIfUndefined() {
return Transform((description: string) => description || '')
}
Run Code Online (Sandbox Code Playgroud)
@TransformValueIfUndefined()
public description: string;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10569 次 |
| 最近记录: |