Я новичок в разработке на Angular и застрял, пытаясь выяснить, как переместить функции проверки из app.module.ts в модуль проверки.
Это работает, когда помещается в app.module.ts:
export function DateValidator(control: FormControl): ValidationErrors {
if (!control.value) return null;
let value = control.value instanceof Date ? control.value : Date.parse(control.value);
return value instanceof Date ? null : { 'invalid': true };
}
Но я хочу переместить все мои валидаторы в функциональный модуль.Когда я пытаюсь это сделать, я получаю следующее сообщение об ошибке:
ERROR in src/app/validators/validators.module.ts(6,22): error TS2322: Type '(control: FormControl) => ValidationErrors' is not assignable to type 'any[] | Type<any>'.
Вот что я пытаюсь сделать:
validators / date.validator.ts:
import { FormControl, ValidationErrors } from "@angular/forms";
export function DateValidator(control: FormControl): ValidationErrors {
if (!control.value) return null;
let value = control.value instanceof Date ? control.value : Date.parse(control.value);
return value instanceof Date ? null : { 'invalid': true };
}
И файл validators / validators.module.ts выглядит следующим образом.Я знаю, что это не правильно, но мне неясно, когда мне нужно импортировать и объявить, а когда экспортировать или предоставить.К сожалению, документация не проясняет для меня ничего подобного.
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DateValidator } from './date.validator';
@NgModule({
declarations: [],
imports: [
CommonModule,
DateValidator
]
})
export class ValidatorsModule { }