Я получаю следующие ошибки Typescript с помощью указанного ниже метода проверки. Чувствую, все перепробовал, и у меня нет идей. Может ли кто-нибудь сказать мне, как решить проблему?
Метод валидатора не позволяет проекту компилироваться, и поэтому проблема не связана с использованием метода.
Type '(formArray: FormArray) => { required: boolean; } | null' is not assignable to type 'ValidatorFn'.
Types of parameters 'formArray' and 'control' are incompatible.
Type 'AbstractControl' is missing the following properties from type 'FormArray': controls, at, push, insert, and 6 more.
public static minSelectedCheckboxes(min: number = 1): ValidatorFn {
const validator: ValidatorFn = (formArray: FormArray) => {
const totalSelected = formArray.controls
// get a list of checkbox values (boolean)
.map((control) => control.value)
// total up the number of checked checkboxes
.reduce((prev, next) => (next ? prev + next : prev), 0);
// if the total is not greater than the minimum, return the error message
return totalSelected >= min ? null : { required: true };
};
return validator;
}
Метод взят из этого примера, который компилируется, но использует compilerOptions.strict = false, что неприемлемо. https://coryrylan.com/blog/creating-a-dynamic-checkbox-list-in-angular
Пример в Stackblitz находится здесь: https://stackblitz.com/edit/angular-98wn2v (вилка приведенного выше примера с compilerOptions.strict = true)