TypeScript - ตั้งค่ากลุ่มการตรวจสอบแบบไดนามิกด้วย class-validator
สมมติว่าฉันมีคลาสแบบนี้
import {Min, Length, IsNotEmpty} from "class-validator";
export class User {
@Max(10, {groups: ["child"]})
@Max(100, {groups: ["adult"]})
@Min(11, {groups: ["adult"]})
age: number;
@IsNotEmpty({groups: ["child", "adult"]})
birthYear: number;
@Length(2, 20, {groups: ["child", "adult"]})
name: string;
}
ฉันสามารถยืนยันสิ่งนี้ได้โดยการทำ
import { validate } from 'class-validator'
User user = new User()
user.age = 15
user.birthYear = 2005
user.name = 'name'
validate(user, groups: ["adult"])
สิ่งที่ฉันอยากทำคือการตั้งค่ากลุ่มที่จะใช้สำหรับการตรวจสอบอย่างไดนามิกตามฟิลด์ birthYear ฉันไม่ต้องการใช้ ValidateIf เพราะอาจมีหลายฟิลด์และเงื่อนไขที่ซับซ้อน
ดูเหมือนว่าฉันจะต้องตรวจสอบความถูกต้องของฟิลด์ birthYear ก่อนเพื่อให้แน่ใจว่ามันตรงตามข้อกำหนดการตรวจสอบความถูกต้องที่กำหนด นี่จะทำให้ฉันต้องสร้างคลาสแยกสำหรับ birthYear เพื่อวัตถุประสงค์ในการตรวจสอบความถูกต้องเท่านั้น เนื่องจากดูเหมือนไม่มีวิธีตรวจสอบความถูกต้องของฟิลด์เดียวเพียงฟิลด์เดียวได้ หาก BirthYear ผ่านการตรวจสอบความถูกต้องแล้ว ฉันจะใช้มันเพื่อกำหนดกลุ่มการตรวจสอบความถูกต้องที่จะใช้
นี่รู้สึกเหมือนเกินจำเป็นและเป็นงานมาก มีวิธีเพิ่มกลุ่มการตรวจสอบบนพื้นฐานของปีเกิดโดยไม่ต้องตรวจสอบปีเกิดล่วงหน้าหรือไม่ หรือตรวจสอบมันเป็นฟิลด์เดียวได้ไหม?