gpt4 book ai didi

javascript - 无法实现 ValidatorFn 接口(interface)

转载 作者:行者123 更新时间:2023-12-05 00:31:02 24 4
gpt4 key购买 nike

我想使用 ValidatorFn 实现自定义跨字段验证器来自 Angular 的接口(interface)。
这是我的代码:(我按照 https://angular.io/guide/form-validation#cross-field-validation 上提供的步骤操作)

import { ValidatorFn, ValidationErrors, FormGroup } from "@angular/forms";

/**
* This validator implements the ValidatorFn Interface from Angular.
*
* @param formGroup- the FormGroup that needs Validation
*
* @returns null if the form is valid, else some {@link ValidatorErrors}
*/
export const CompleteBloodpressureValidator: ValidatorFn = (formGroup: FormGroup) => {

const bloodpressureSys = formGroup.get("bloodPressureSysFormControl");
const bloodpressureDia = formGroup.get("bloodPressureDiaFormControl");

if (bloodpressureSys != null && bloodpressureDia == null || bloodpressureSys == null && bloodpressureDia != null){
// return some custom ValidatorErrors
return {
bloodPressureIncomplete: true
};
}
// if everything is fine, return null
return null;
}
但是 Angular 编译器不断告诉我以下内容:
Type '(fromGroup: FormGroup) => { bloodPressureIncomplete: boolean; } | null' is not assignable to type 'ValidatorFn'.

Types of parameters 'fromGroup' and 'control' are incompatible.

Type 'AbstractControl' is missing the following properties from type 'FormGroup': controls, registerControl, addControl, removeControl, and 3 more.ts(2322)
在我看来,这没有任何意义,我对 ValidatorFn 的实现正是它应该的样子。
有什么建议我在这里做错了吗?

最佳答案

所以这个问题的答案是更新TypeScript版本或者交换

formGroup: FormGroup
formGroup: AbstractControl
这似乎是由 TypeScript 版本中的错误引起的。
编辑:更新到最新的 TypeScript 版本不会改变任何东西。我想这可能是 Angular 文档中的一个错误。

关于javascript - 无法实现 ValidatorFn 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63305056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com