代码之家  ›  专栏  ›  技术社区  ›  snowflakes74

如何在Typescript的appconstants中存储验证规则

  •  1
  • snowflakes74  · 技术社区  · 4 年前

    我试图将业务验证规则对象存储在静态文件(constants.ts)中,以便在验证函数中引用消息。如果验证失败,我必须返回以下三个属性:

    status:boolean
    errorMessage:string
    errorMeaning:string
    errorNo:number
    errorDescription: string
    

    验证功能为:

    constructor() {
     this.upval = new UploadValidationModel();
    }
    
    validateFileHeaderColumns(data: any ): UploadValidationModel {
    if (data[1].length !== 6) {
      this.upval.status = false;
      this.upval.errorMessage = 'Incorrect number of fields';
      this.upval.errorFix = 'Check that Row 1 has seven (7) fields';
      return this.upval;
    }
    

    }

    所以,与其在这里硬编码,有没有一种方法可以将这些值作为常量保存在文件中,然后注入它们? 我尝试使用以下代码添加uploadvalidation.ts文件,但我不确定如何获取这些值。也可能有多个规则,所以我需要在这个文件中有一个对象数组。

    export const UploadValidationInvalidHeader
    {
     { "status" : false,
       "errorMessage": 'Incorrect number of fields',
       "errorMeaning": 'Fix it',
       "errorNo":number
       "errorDescription": string
      }
    }
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Andreas Dolk    4 年前

    您可以将所有验证错误结果放在一个对象中,其中业务规则名称是关键,如下所示

    export const validationResult:ValdationResultMapType {
    UploadValidationInvalidHeader: { 
       "status" : false,
       "errorMessage": 'Incorrect number of fields',
       "errorMeaning": 'Fix it',
       "errorNo": 1234,
       "errorDescription": 'Check that Row 1 has seven (7) fields',
      }
    }
    

    然后,当验证失败时,传播验证结果的详细信息

    validateFileHeaderColumns(data: any ): UploadValidationModel {
    if (data[1].length !== 6) {
      this.upval = {...validationResult.UploadValidationInvalidHeader};
      return this.upval;
    }