在Typescript中的类上使用诸如静态方法之类的方法

时间:2018-12-17 09:01:05

标签: angular typescript

我有一个验证类,我想使用这样的方法:

amount: [0, DataInputValidators.validateRange(1,2)],

这不起作用,它有错误:

Property 'validateRange' does not exist on type 'typeof DataInputValidators'.

验证类别:

import {AbstractControl} from '@angular/forms';

export class DataInputValidators {

  validateRange(min, max) {
    return function (control: AbstractControl) {
      if (control.value < min || control.value > max) {
        return { outOfRange: true };
      }
      return null;
    };
  }
}

2 个答案:

答案 0 :(得分:1)

如果要使用静态函数,请将该函数声明为static:-)

export class DataInputValidators {
  static validateRange(min, max) {
    return function (control: AbstractControl) {
      if (control.value < min || control.value > max) {
        return { outOfRange: true };
      }
      return null;
    };
  }
}

答案 1 :(得分:-1)

在return语句后删除function关键字,并将其保留在外面。它应该看起来像这样:

function validateRange(min: number, max: number): ValidatorFn {
    return (control: AbstractControl): { [key: string]: boolean } | null {
        if (control.value < min || control.value > max) {
            return { 'outOfRange': true };
        }
        return null;
    };
}