需要解释这种地狱般的语法

时间:2018-02-23 12:53:33

标签: angular typescript

我从官方文档https://angular.io/guide/form-validation#custom-validators

中提取了此示例
 return (control: AbstractControl): {[key: string]: any} => {
    const forbidden = nameRe.test(control.value);
    return forbidden ? {'forbiddenName': {value: control.value}} : null;
 };

我该怎么理解这个?

 return (control: AbstractControl): {[key: string]: any} => {
    return ...
 }

它似乎返回一个javascript对象(控件:对象)但是为什么有一个lambda?

问题不在于函数的作用,文档中对此进行了解释,而是返回语句的语法。

编辑:我只是不知道你可以创建这样的功能,现在它很清楚。

请向我解释。感谢。

1 个答案:

答案 0 :(得分:2)

它返回一个函数,其参数control的类型为AbstractControlcontrol: AbstractControl)。返回的此函数将依次返回可以按字符串索引的对象,并且对象中的值的类型为any({[key: string]: any})。重新调整的函数是箭头函数(=>