Угловые сильно типизированные реактивные формы - PullRequest
1 голос
/ 08 марта 2019

Я собираюсь реорганизовать большой набор компонентов в своем проекте Angular, чтобы иметь строго типизированные FormGroups, FormArrays и FormControls.

Я просто ищу хороший способ реализации строго типизированных реактивных форм. Может ли кто-нибудь предоставить предложения / рекомендации из собственного опыта?

Спасибо.

EDIT:

Чтобы уточнить, под строгой типизацией я подразумеваю в настоящее время, когда я создаю FormGroup или FormArray, у меня нет способа указать структуру фактической формы внутри него. Когда я передаю эту форму различным компонентам в моем приложении, я чувствую, что усложняю ее обслуживание.

1 Ответ

0 голосов
/ 06 июня 2019

Самым элегантным решением является использование файлов объявлений TypeScript (*.d.ts) для введения универсальных интерфейсов, расширяющих стандартные классы форм, такие как AbstractControl, FormControl и т. Д. Он не вводит никаких новых функций и не занимает места в скомпилированный JavaScript, но в то же время обеспечивает строгую проверку типов.

Это было предложено Даниэлем Морозинотто в марте этого года, и сейчас ведутся переговоры , чтобы включить его в Angular 9.

Принять решение просто:

  1. Загрузите TypedForms.d.ts из этой сущности и сохраните ее как src/typings.d.ts в своем проекте (Angular 6+ уже знает, как использовать этот файл).
  2. Начинайте использовать новые типы (FormGroupTyped<T>, FormControlTyped<T> и т. Д.) Всякий раз, когда вам нужна строгая проверка типов (см. Примеры в , которые содержат или stackblitz ).

Для получения дополнительной информации посетите сообщение в блоге , в котором анализируются доступные решения для строго типизированных форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...