Angular 6自定义验证返回类型

时间:2019-04-19 13:30:55

标签: angular typescript angular6

我的项目中有此代码用于自定义验证,但我无法理解什么:(group: FormGroup) => ValidationResult是这里的意思?

我了解:(group: FormGroup)表示返回类型,但是=> ValidationResult在这里是什么意思?

static comparePasswords(passwordKey: string, confirmPasswordKey: string): (group: FormGroup) => ValidationResult {
    return (group: FormGroup): ValidationResult => {
      const password = group.controls[passwordKey];
      const confirmPassword = group.controls[confirmPasswordKey];
      if (password.value !== confirmPassword.value) {
        return { mismatchedPasswords: true };
      }
    };
  }

4 个答案:

答案 0 :(得分:4)

完整的返回类型为(group: FormGroup) => ValidationResult。也就是说,返回类型是一个接受FormGroup参数并返回ValidationResult的函数。

这是正确的,因为您确实在返回一个接受FormGroup并返回ValidationResult的函数。内部函数的返回类型为ValidationResult

答案 1 :(得分:1)

  

我了解:(组:FormGroup)表示返回类型,但是=> ValidationResult在这里是什么意思?

不。返回类型为(group: FormGroup) => ValidationResult

这意味着comparePasswords方法返回一个以FormGroup作为参数并返回ValidationResult的函数。即这是一个FormGroup验证器。

答案 2 :(得分:1)

您可以看到如下代码:

{functionName}( {params}[] ) : {returnType} {
    {functionBody}
}

您的functionName为comparePasswords的地方
您的参数是passwordKey: string, confirmPasswordKey: string
您的returnType为(group: FormGroup) => ValidationResult

您的函数返回的类型也是一个函数。

执行comparePasswords时,您会得到一个函数。

如果执行此功能,并向其传递FormGroup,则会得到一个ValidationResult

答案 3 :(得分:0)

在此块中,它返回一个函数,该函数接受类型为FormGroup的参数并返回ValidationResult

通常,在自定义验证中,如果验证成功,我们通常返回null并返回由类型{[key:string]:string}表示的键值对

此键用于错误收集中,可用于验证验证是否成功