我是一名Java开发人员,并且是Angular的新宝贝。我对Typescript语法有点困惑。
我正在阅读此article,特别是“自定义验证器”和此代码段
@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;
}
}
,forbiddenNameValidator函数的定义为:
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)的翻译是什么?
答案 0 :(得分:1)
如果值this.forbiddenName
为假(false, null, undefined, 0, false
),则它将返回null,否则它将使用给定的forbiddenNameValidator
调用函数regex
。 i
参数中的RegExp
用于制作正则表达式case-insensitive
。
答案 1 :(得分:0)
对我来说很奇怪,但是你可以做这样的事情
export function f1(param1) {
return (param2) => {
return (param3) => {
console.log(param1, param2, param3);
};
};
}
然后调用这样的函数
f1(1)(2)(3);