Angular16 has introduced a new feature to define the inputs as required for component and directives. We can now specify that a component or directive requires certain inputs to function properly.
By using this new feature, we can insure that all necessary data is present before the component or directive logic/functionality executed, resulting better code quality, fewer errors. To use it we can set the new required option in our input:
1 2 3 4 5 6 7 8 9 10 | import { Component, Input } from '@angular/core' ; @Component({ selector: 'app-my-component' , templateUrl: './my-component.component.html' , styleUrls: [ './my-component.component.css' ], }) export class MyComponentComponent { @Input({ required: true }) elementId: string; } |
There will be a compilation error if the consumer doesn’t initialize this input: