Typescript:静态方法返回值

时间:2017-01-06 12:40:57

标签: javascript angular typescript

我有这样的课程:

ProxyClass
  

EXCEPTION:未捕获(在承诺中):错误:错误:0:0引起:无法读取未定义的属性'checkPattern'   TypeError:无法读取未定义的属性'checkPattern'       在GlobalValidation.urlPattern

我做错了什么?

当我把课改写为:

export class GlobalValidation {
    static emailPattern(control: AbstractControl): ValidationResult {
        var EMAIL_REGEXP = Pattern.EMAIL;
        return this.checkPattern(control, EMAIL_REGEXP);
    }

    static urlPattern(control: AbstractControl): ValidationResult {
        var URL_REGEXP = Pattern.URL;
        return this.checkPattern(control, URL_REGEXP);
    }

    static checkPattern(control: AbstractControl, pattern: any) {
        if (control.value != "" && !pattern.test(control.value)) {
            return {"incorrectPatternFormat": true};
        }

        return null;
    }
}

一切都很好。

似乎有些事情很明显,但我很想念。

2 个答案:

答案 0 :(得分:2)

您使用checkPattern呼叫this,尽管它是静态方法。使用checkPattern

致电GlobalValidation.checkPattern(...)

答案 1 :(得分:2)

您无法从静态方法访问this。使用静态类有一个目的,那就是 - 您不需要创建类的新实例来使用该方法。

您应该使用GlobalValidation.checkPatter(...)作为Phil Cap建议或仅重写它,因此它不使用GlobalValidation类的属性。