Sono nuovo di zecca nel dattiloscritto e ho due classi. Nella classe genitore ho:
abstract class Component {
public deps: any = {};
public props: any = {};
public setProp(prop: string): any {
return <T>(val: T): T => {
this.props[prop] = val;
return val;
};
}
}
Nella classe bambino ho:
class Post extends Component {
public toggleBody: string;
constructor() {
this.toggleBody = this.setProp('showFullBody');
}
public showMore(): boolean {
return this.toggleBody(true);
}
public showLess(): boolean {
return this.toggleBody(false);
}
}
Sia showMore che ShowLess restituiscono l'errore "Impossibile richiamare un'espressione il cui tipo non dispone di una firma di chiamata".
Ma la funzione restituita da setProp HA una firma di chiamata, credo? Penso di aver frainteso qualcosa di importante sulla digitazione delle funzioni, ma non so cosa sia.
Grazie!
<T>(val: T) => T
togglrBodynon dovrebbe essere una stringa, dal momento che vuoi che sia una funzione