Regarding not explictly using a generic argument, how about if you use a FormControl which is a complex type, and you initialise it with null? The form control's type with be inferred as 'unknown' P.s. thanks for the video.
This is true, but for most forms I think it's OK to initialize strings with the empty string, numbers with 0, etc. It greatly simplifies the form declaration. For most practical cases, there is no downside. 👍
the form is best declared as a member variable, to get the full type safety benefits. Check out this video for more details - ruclips.net/video/it2BZoIvBPc/видео.html
Thank you for the excellent video. I was just left with a question regarding FormArray. Assuming the suggested "best" way to handle typed forms, how should I deal with FormArrays? In a practical example, where in a form there is a FormGroup with the control for the name and a FormArray for a FormGroup of Addresses (with controls for street, city, zip code), how should I declare the FormArray, assuming that initially there are no entries in the FormArray, as the user has not added/pushed any address yet?
If youdon't have any initial values, then that could be a good example of where using an explicit type would work great. My point in the video was, most of the times you can simplify your forms code by removing the explicit types, as long as you have some initial values for the fields.👍
For a more complex form, the type will still be inferred automatically, so not using the generics directly and relying on type inference is actually less work, and it's guaranteed to always be correct. 😊 you can always use generics is needed by some reason, but normally it shouldn't be necessary. In Typescript for many generic-based APIs like the Forms module, many times the generic parameters don't need to be called explicitly, everything happens via type inference. 👍
For a larger form, this is even more true, we could really use that extra type safety to make our code safer. I just used a small example here to keep it simple for the video. 👍
This is my first video made specifically for RUclips, please enjoy. 🙂 A full course on Angular Forms is available here - angular-university.io
How is this possible syntactically? TS2729: Property fb is used before its initialization.
Regarding not explictly using a generic argument, how about if you use a FormControl which is a complex type, and you initialise it with null? The form control's type with be inferred as 'unknown'
P.s. thanks for the video.
This is true, but for most forms I think it's OK to initialize strings with the empty string, numbers with 0, etc. It greatly simplifies the form declaration. For most practical cases, there is no downside. 👍
Awesome content.
Thank you, please enjoy ☺
What if the form is in the child component and you receive data through input, how to declare the form outside the lifecycle method in this way?
the form is best declared as a member variable, to get the full type safety benefits. Check out this video for more details - ruclips.net/video/it2BZoIvBPc/видео.html
As always great content
Thank you, much appreciated 😊
Thank you for the excellent video. I was just left with a question regarding FormArray.
Assuming the suggested "best" way to handle typed forms, how should I deal with FormArrays?
In a practical example, where in a form there is a FormGroup with the control for the name and a FormArray for a FormGroup of Addresses (with controls for street, city, zip code), how should I declare the FormArray, assuming that initially there are no entries in the FormArray, as the user has not added/pushed any address yet?
If youdon't have any initial values, then that could be a good example of where using an explicit type would work great. My point in the video was, most of the times you can simplify your forms code by removing the explicit types, as long as you have some initial values for the fields.👍
@@AngularUniversity So, in this example the FormArray would be a good case of the exception to the "rule". Thank you for the clarification.
What about FormArray?
works also, with this.fb.array() 👍
Generic is great if you have a complex interface in my opinion
For a more complex form, the type will still be inferred automatically, so not using the generics directly and relying on type inference is actually less work, and it's guaranteed to always be correct. 😊 you can always use generics is needed by some reason, but normally it shouldn't be necessary. In Typescript for many generic-based APIs like the Forms module, many times the generic parameters don't need to be called explicitly, everything happens via type inference. 👍
does ur opinion change if ur form has 10+ fields?
For a larger form, this is even more true, we could really use that extra type safety to make our code safer. I just used a small example here to keep it simple for the video. 👍
well devilvered
Thank you, I'm glad you enjoyed it. 👍 More videos on the way (including shorts), stay tuned. 😊
Hi, Vasco. Having the form built *outside* of a function (like ngOnInit), looks ugly and hopefully in a future version this will change.
It's unusual in Angular code indeed and an exception. soon the Angular team will start their work on signal forms, so forms are due for an overhaul 😉
Is it not feasible to use real project , or m I got something wrong
Sure it is, I use it all the time 😊