Rozważ następujący komponent:
@Component({
selector: 'app-test'
template: 'Hello!'
}}
export class TestComponent {
@Output() readonly selectionChange = new EventEmitter<SomeTypeHere>();
}
Z rozmową:
<app-test (selectedChange)="selectedChangeHandler($event)"></app-test>
Zauważ, że napisałem selectedChange
zamiast prawidłowej nazwy wyjściowej selectionChange
. Angular 9 z strictTemplates
włączoną flagą wcale mi nie pomógł. Po cichu zawiodło. Interesujące jest to, że jeśli zrobię to samo @Input
, aplikacja złapie błąd (błędy) i się nie skompiluje.
Czy istnieje jakiś sposób, aby zgłosić błąd, jeśli próbuję „wysłuchać” nieistniejącego @Output
?
@Output()
bibliotekę współdzieloną lub nawet w aplikacji i zapomina usunąć połączenia ... a ponieważ nie mamy błędów kompilacji, tak jak my @Input()
, nie możemy znaleźć dokładnie tego, co powoduje pewne problemy (lub nawet za brak przechowywania śmieci w kodzie). Testy jednostkowe mogą być pomocne? Może, ale w tej chwili nie jest to jeszcze możliwe ze względu na czas.