Декораторы - это обычные машинописные функции. Вы можете попытаться объединить несколько декораторов в один. Например, вы можете смешать проверочные в один декоратор, например:
function apiStringField(maxLength: number, message: string, description?: string) {
return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
ApiModelProperty()(target, propertyKey, descriptor)
Expose()(target, propertyKey, descriptor)
MaxLength(maxLength, { message })(target, propertyKey, descriptor)
IsString({ message })(target, propertyKey, descriptor)
NotEquals(undefined, { message })(target, propertyKey, descriptor)
}
}
И использовать его следующим образом (после импорта):
@apiStringField(100, 'message', 'description')
address: string;