Je suis tout nouveau dactylographié et j'ai deux classes. Dans la classe des parents, j'ai:
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;
};
}
}
Dans la classe enfant, j'ai:
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);
}
}
ShowMore et ShowLess me donnent tous les deux l'erreur "Impossible d'appeler une expression dont le type n'a pas de signature d'appel."
Mais la fonction que setProp retourne a-t-elle une signature d'appel, je pense? Je pense que je ne comprends pas quelque chose d'important sur les typages de fonctions, mais je ne sais pas ce que c'est.
Merci!
<T>(val: T) => T
togglrBody
ne devrait pas être une chaîne, puisque vous voulez que ce soit une fonction