Angular 什么是“;forbiddenNameValidator(新的RegExp(this.forbiddenName,';i';))(控件)和#x201D;做

Angular 什么是“;forbiddenNameValidator(新的RegExp(this.forbiddenName,';i';))(控件)和#x201D;做,angular,typescript,Angular,Typescript,我是一名java开发人员,也是Angular的新生婴儿。我对Typescript语法有点困惑 我正在阅读这篇文章,特别是“自定义验证器”和这段代码 @Directive({ selector: '[appForbiddenName]', providers: [{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}] }) export class ForbiddenValidator

我是一名java开发人员,也是Angular的新生婴儿。我对Typescript语法有点困惑

我正在阅读这篇文章,特别是“自定义验证器”和这段代码

@Directive({
  selector: '[appForbiddenName]',
  providers: [{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}]
})
export class ForbiddenValidatorDirective implements Validator {
  @Input('appForbiddenName') forbiddenName: string;

  validate(control: AbstractControl): {[key: string]: any} | null {
    return this.forbiddenName ? forbiddenNameValidator(new RegExp(this.forbiddenName, 'i'))(control)
                              : null;
  }
}
验证函数的定义是:

export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {
  return (control: AbstractControl): {[key: string]: any} | null => {
    const forbidden = nameRe.test(control.value);
    return forbidden ? {forbiddenName: {value: control.value}} : null;
  };
}

forbiddenNameValidator(new RegExp(this.forbiddenName,'i'))(control)的翻译是什么?

如果值
this.forbiddenName
为falsy(
false,null,undefined,0,false),则返回null,否则,它将使用给定的
regex
调用函数
validator
RegExp
参数中的
i
用于使regex
不区分大小写,这对我来说很奇怪,但你可以这样做

export function f1(param1) {
  return (param2) => {
      return (param3) => {
        console.log(param1, param2, param3);
      };
  };
}
f1(1)(2)(3);
然后像这样调用函数

export function f1(param1) {
  return (param2) => {
      return (param3) => {
        console.log(param1, param2, param3);
      };
  };
}
f1(1)(2)(3);
“翻译”是什么意思?它使用正则表达式调用函数,正则表达式由两个参数构成,然后使用控件调用第一个函数返回的函数。