Спасибо огромное) Так действительно ошибки нет
Это ts компилятор ругаеться,они в 12 версий ожесточили конфиги проверки по умолчанию,при желании можете в файле tsconfig.json отключить сильно надоедающие правила
Правильно понимаю, что речь про "strictPropertyInitialization": false ? В группе сказали: > strictPropertyInitialization": false - ошибка пропадает. во время компайла, в рантайме ошибка никуда не девается
Нет , strictPropertyInitialization это проверка на присвоения значения члену класса,внутри конструктора или при объявлении.
если форму инициализировать при объявлении, ошибки не будет
Разбираюсь с примером: export class AppComponent { form = new FormGroup({ email: new FormControl('', [ Validators.email, Validators.required ]), password: new FormControl(null, [ Validators.required, Validators.minLength(6) ]) }) submit() { if (this.form.valid) { console.log('Form: ', this.form) const formData = {...this.form.value} console.log('Form Data:', formData) } } } Вы предлагаете иначе?
хочешь сказать, что при такой инициализации у тебя ругается с вышеозначенной ошибкой?
Да, если не использовать safe navigation operator ? и "strictPropertyInitialization": true, "strictNullChecks": true *ngIf="form.get('email').invalid && form.get('email').touched Если "strictPropertyInitialization": false, "strictNullChecks": false, тогда можно без safe navigation operator ?
только что воспроизвел все то, что ты написал. нет ошибки
ну, единственное, писал через form.controls.email.invalid
Действительно, так нет ошибки с "strictNullChecks": true, а с form.get('email') ошибки есть, если не указывать safe navigation operator ? 🤔 Подскажите, в случае с form.controls каким образом проверять на ошибки? С get делаю так: *ngIf="form.get('email').errors.required Для чего нужно: если пользователь вводит не верный email, тогда выводить сообщение <small *ngIf="form.get('email').errors.email">Введите корректный email</small>. Можно конечно сделать так: <small *ngIf="form.get('email')?.errors?.email">Введите корректный email</small> Но может есть способ с controls?
да ты прикалываешься походу. вот в случае с form.controls.email.errors там естественно могут быть или не быть разные проперти в errors и поэтому и выдает ошибку. там придется через form.controls.email.errors?.required
Спасибо, понятно. Извините, не "прикалываюсь". Только начинаю познавать азы.
судя по вопросам, рановато во фреймворк. тут на уровне js недопонимание имеется
Решение - использовать safe navigation operator? У меня такой же вопрос)
Вроде конкретно эта ошибка - из-за незнания синтаксиса и устройства фреймворка. Разве нет? В обычном js было бы undefined и было бы
ок. неправильно сформулировал
ну да. почему нет. есть конечно противники оператора. правда аргументы слабые
Обсуждают сегодня