Hãy xem xét các thành phần sau:
@Component({
selector: 'app-test'
template: 'Hello!'
}}
export class TestComponent {
@Output() readonly selectionChange = new EventEmitter<SomeTypeHere>();
}
Với cuộc gọi:
<app-test (selectedChange)="selectedChangeHandler($event)"></app-test>
Lưu ý rằng tôi đã viết selectedChange
thay vì tên đầu ra chính xác selectionChange
. Angular 9 với cờ strictTemplates
được kích hoạt không giúp tôi chút nào. Nó thất bại âm thầm. Phần thú vị là nếu tôi làm điều tương tự @Input
, ứng dụng sẽ bắt lỗi và không biên dịch.
Có cách nào để đưa ra một lỗi nếu tôi cố gắng "lắng nghe" một cách không tồn tại @Output
?
@Output()
lib được chia sẻ hoặc thậm chí trên ứng dụng và quên xóa các cuộc gọi ... và vì chúng tôi không có lỗi biên dịch, như chúng tôi mắc phải @Input()
, chúng tôi không thể tìm thấy chính xác nguyên nhân gây ra sự cố nhất định (hoặc thậm chí không giữ rác trong mã). Bài kiểm tra đơn vị có thể hữu ích? Có thể, nhưng tại thời điểm đó là không thể do thời gian.