Читать книгу Angular - Ferdinand Malcher - Страница 218
Meldung: Expected call-signature to have a typedef
ОглавлениеWomöglich erhalten Sie für die Methoden showList() und showDetails() die folgende Warnmeldung im Editor:
expected call-signature: 'showList' to have a typedef (typedef)
Das Tool TSLint weist uns darauf hin, dass wir eine Regel gebrochen haben: Eine Methode soll immer einen festgelegten Rückgabetyp besitzen. Geben wir hier also den Rückgabetyp void an (wie beim ngOnInit()), so verschwindet die Meldung.
Wir sind allerdings der Meinung, dass eine Methode nicht immer zwangsläufig einen Rückgabetyp angeben muss, denn der Compiler kann auch ohne unsere Hilfe den korrekten Typ ermitteln. Machen wir hier keine expliziten Angaben, ist der Quelltext etwas kürzer. Wir wollen die Regel daher vollständig deaktivieren. Dazu ändern wir in der Datei tslint.json den Eintrag für typedef von true auf false.
"typedef": [
false,
"call-signature"
],
Ob Sie dies für Ihr Projekt auch tun, bleibt Ihnen überlassen. Es gibt für diese Regel keine richtige oder falsche Entscheidung.
Das Event showDetailsEvent übermittelt in seinem Event-Payload das ausgewählte Buch. Wir haben schon dafür gesorgt, dass dieses Buch im Property book gespeichert wird. Von dort aus übergeben wir das Objekt an die BookDetailsComponent.
<bm-book-list
*ngIf="viewState === 'list'"
(showDetailsEvent)="showDetails($event)"></bm-book-list>
<bm-book-details
*ngIf="viewState === 'details'"
(showListEvent)="showList()"
[book]="book"></bm-book-details>