【发布时间】:2021-04-08 21:48:35
【问题描述】:
我创建了一个简单的自定义验证函数。
import { AbstractControl, ValidatorFn } from "@angular/forms";
export function firstLeterUpperCase():ValidatorFn{
return (control:AbstractControl) =>{
const value = <string>control.value;
if(!value) return;
if(value.length === 0) return;
const firstLetter = value[0];
if(firstLetter !== firstLetter.toUpperCase())
{
return{
firstLeterUpperCase:{
message:"First letter must be uppercase."
}
}
}
return
}
}
但我遇到了以下错误。不知道我哪里做错了。
错误:src/app/validators/firstLetterValidator.ts:4:5 - 错误 TS2322: Type '(control: AbstractControl) => {} | undefined' 不可分配enter code here 键入'ValidatorFn'。
输入'{} | undefined' 不可分配给类型 'ValidationErrors |空值'。
类型“未定义”不可分配给类型“ValidationErrors |空'。
【问题讨论】:
-
从错误信息来看,
ValidatorFn类型必须返回ValidationErrors或null,但是你已经返回undefined(return;与return undefined;相同)。也许应该改成return null;。
标签: angular forms validation