Angular2:来自导出类的公共静态方法的返回类型具有或正在使用私有名称

mes*_*lds 1 typescript angular

错误

Error at /Users/user/project/.tmp/shared/validation/validators/unicode-characters.validator.ts:12:52: Return type of public static method from exported class has or is using private name 'ValidationResult'.
Run Code Online (Sandbox Code Playgroud)

成分

import {FormControl} from "@angular/forms";

interface ValidationResult {
    [key:string]:boolean;
}

export class UnicodeCharactersValidator {

    /* tslint:disable:max-line-length */
    private static UNICODE_CHARS_PATTERN = /^[ \u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0]*$/;

    public static check(formControl: FormControl): ValidationResult {
        if ( !UnicodeCharactersValidator.UNICODE_CHARS_PATTERN.test(formControl.value) ) {
            return { "invalidCharacters": true };
        }
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Pie*_*Duc 5

您还必须导出接口:

export interface ValidationResult {
    [key:string]:boolean;
}
Run Code Online (Sandbox Code Playgroud)

公共函数返回一个ValidationResult. 这意味着它可以从外部访问。这就是为什么您还应该导出ValidationResult:)