Рассмотрим следующий компонент:
@Component({
selector: 'app-test'
template: 'Hello!'
}}
export class TestComponent {
@Output() readonly selectionChange = new EventEmitter<SomeTypeHere>();
}
С звонком:
<app-test (selectedChange)="selectedChangeHandler($event)"></app-test>
Обратите внимание, что я написал selectedChange
вместо правильного выходного имени selectionChange
. Angular 9 с strictTemplates
включенным флагом мне совсем не помог. Это молча провалилось. Интересно то, что если я делаю то же самое @Input
, приложение ловит ошибки и не компилируется.
Есть ли способ выдать ошибку, если я попытаюсь «прослушать» несуществующее @Output
?
@Output()
в общей библиотеке или даже в приложении и забывает удалять вызовы ... и, поскольку у нас нет ошибок компиляции, как у нас @Input()
, мы не можем точно найти, что вызывает определенные проблемы (или даже для того, чтобы не хранить мусор в коде). Модульные тесты могут быть полезны? Возможно, но пока невозможно из-за времени.