gpt4 book ai didi

typescript - 验证类 : Fail validation if field is present

转载 作者:行者123 更新时间:2023-12-05 05:04:00 25 4
gpt4 key购买 nike

我有一个示例类 ( https://github.com/typestack/class-validator#validation-messages )。我创建了一个应该执行正常验证的函数,或者,如果指定,则执行失败的验证,如果 title 字段包含在被验证的实例中。

import {MinLength, MaxLength, validate} from "class-validator";

export class Post {

@IsString()
body: strong;

@IsString()
title: string;

public async validatePost(isTitle){
// if we want the title to be included in the instance, do normal validation
if(isTitle) {
validate(this, { forbidUnknownValues: true, validationError: { target: false } });
}
// if a title is provided, fail validation
else {
// TODO: How can I fail validation if `title` is part of the instance?
}
}

}

我知道当存在非白名单属性 ( https://github.com/typestack/class-validator#whitelisting ) 时我可能会抛出错误,但我似乎无法弄清楚如何在存在字段时有条件地使验证失败。如果不创建自定义装饰器,这甚至可能吗?

最佳答案

有几个选项:

您可以添加条件:https://github.com/typestack/class-validator#conditional-validation

@ValidateIf(o => o.otherProperty === "value")
@Equals(undefined)
title: string;

如果你希望它始终是未定义的:

@Equals(undefined)
title: string;

如果您使用 class-transformer,您可以将其标记为 @Excluded,这样无论发送什么值,它都不会被设置到该字段。

@Exclude({ toPClassOnly: true })
title: string;

关于typescript - 验证类 : Fail validation if field is present,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61331186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com