https://stackoverflow.com/questions/58073841/bang-colon-notation-in-angular
If you have strictNullChecks
on then anything you decorate with @Input
will usually complain. For example...
public class MyComponent {
@Input()
public myField: string;
constructor() {}
}
This will lead to TS complaining. This is because myField
has not be declared nullable so it should never be set to null
or undefined
. At the same time, it is not initialized in the constructor, so it will get an initial value of undefined
.
Normally, this is fine. We know that Angular will set the value shortly after construction. If we mark the field nullable public myField: string?
then we will have to deal with this field may be null
errors all over the place when we try and use it.
So, as a compromise, we throw a !
on the field declaration to tell Typescript "I know this looks like it is getting initialized to null/undefined but trust me, I will take care of it".
No comments:
Post a Comment