В настоящее время я использую пакет class-transformer
для преобразования необязательных значений в значения по умолчанию
@IsString()
@IsOptional()
@Transform((description: string) => description || '')
public description: string;
и возникают две проблемы.
- Мне нужно использовать эту логику преобразования c несколько раз для разных типов
- Я хочу сделать его тестируемым для отчета о покрытии кода
Поэтому в основном я хочу создать функцию, преобразующую необязательное значение в значение по умолчанию, мой текущий подход:
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('')