Je suis tout nouveau dans le domaine du tapuscrit, et j'ai deux classes. Dans la classe mère, 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 des enfants, 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 renvoient tous deux l'erreur suivante : "Cannot invoke an expression whose type lacks a call signature" (Impossible d'invoquer une expression dont le type n'a pas de signature d'appel).
Mais la fonction renvoyée par setProp a bien une signature d'appel, je pense ? Je pense que je n'ai pas compris quelque chose d'important sur le typage des fonctions, mais je ne sais pas ce que c'est.
Merci de votre attention !
1 votes
togglrBody
ne doit pas être une chaîne de caractères, puisque vous voulez qu'il s'agisse d'une fonction1 votes
@eavidan oui c'est une fonction qui renvoie un booléen. Je pensais à l'origine qu'elle renverrait une chaîne de caractères. Je ne sais pas si c'est le cas, mais je ne sais pas si c'est le cas.
0 votes
Quel que soit le résultat de setProp, qui semble être
<T>(val: T) => T