zoukankan      html  css  js  c++  java
  • [TypeScript] Decorator-based Validation using Class Validator

    For example, we have a interface:

    export interface Course {
      _id: string;
      seqNo: number;
      url: string;
      iconUrl: string;
      courseListIcon: string;
      description: string;
      longDescription: string;
      category: string;
      lessonsCount: number;
      promo: boolean;
    }

    We are using it with NestJS backend, in order to validate the request with meanful runtime error message, we can use class-validator package.

    First we need to convert a interface to class:

    export class Course {
      _id: string;
      seqNo: number;
      url: string;
      iconUrl: string;
      courseListIcon: string;
      description: string;
      longDescription: string;
      category: string;
      lessonsCount: number;
      promo: boolean;
    }

    Then add valdiations:

    import { IsMongoId, IsString, IsBoolean, IsInt } from "class-validator";
    
    export class Course {
      @IsString()
      @IsMongoId()
      _id: string;
    
      @IsInt({ message: "seqNo must be numeric" })
      seqNo: number;
      // always false, no need to be always applied the rule
      @IsString({ always: false }) url: string;
      @IsString() iconUrl: string;
      @IsString() courseListIcon: string;
      @IsString() description: string;
      @IsString() longDescription: string;
      @IsString() category: string;
      @IsInt() lessonsCount: number;
      @IsBoolean() promo: boolean;
    }
  • 相关阅读:
    第二周
    第一周
    构建之法阅读笔记之三
    冲刺一(10)
    冲刺一(9)
    用户模板和用户场景
    冲刺一(8)
    第10周总结
    冲刺一(7)
    冲刺一(6)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12215002.html
Copyright © 2011-2022 走看看