Validation Angular 2-自定义验证程序语法

Validation Angular 2-自定义验证程序语法,validation,angular,typescript,Validation,Angular,Typescript,请有人给我解释一下以下类型脚本语法: {[s: string]: boolean} 这是Angular 2中的验证器fn的返回类型。特别是,数组:[s:string]表示什么 编写自己的自定义验证器fn函数时,布尔字段的用途是什么?以下几点似乎没有区别: startsWithZero(control: FormControl): {[s: string]: boolean} { if (control.value.indexOf('0') !== 0) { return

请有人给我解释一下以下类型脚本语法:

{[s: string]: boolean}
这是Angular 2中的
验证器fn
的返回类型。特别是,数组:
[s:string]
表示什么

编写自己的自定义
验证器fn
函数时,布尔字段的用途是什么?以下几点似乎没有区别:

startsWithZero(control: FormControl): {[s: string]: boolean} {
    if (control.value.indexOf('0') !== 0) {
        return {'does not start with zero': true};
    }

    return null;
}
vs.

startsWithZero(control: FormControl): {[s: string]: boolean} {
    if (control.value.indexOf('0') !== 0) {
        return {'does not start with zero': false};
    }

    return null;
}

Angular文档在这方面有点抽象,在Google上找不到太多。谢谢

我认为这是对字符串变量求值并将该变量指定为布尔类型;比如[s:string]=“myVar”。在这个例子中,类型注释
{[s:string]:Boolean}
意味着一个字典,其中键是字符串,值是布尔值

这些类型被称为。这是描述字典的典型方式(又称哈希映射)

在Angular 2中,
验证器fn
的类型为:

export interface ValidatorFn {
    (c: AbstractControl): {
        [key: string]: any;
    };
}
…一个函数,它接受一个
AbstractControl
并返回一个字典-该键标识验证规则,例如
maxLength
,该值可以是解释规则失败原因的任何值,例如
{'requiredLength':maxLength,'actualLength':v.length}
。它不必是
布尔值

来自Angular 2震源的示例如下