Soy nuevo en mecanografiado y tengo dos clases. En la clase de padres tengo:
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;
};
}
}
En la clase infantil tengo:
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);
}
}
Tanto showMore como ShowLess me dan el error "No se puede invocar una expresión cuyo tipo carece de una firma de llamada".
Pero la función que devuelve setProp TIENE una firma de llamada, creo. Creo que estoy malinterpretando algo importante sobre la tipificación de funciones, pero no sé qué es.
¡Gracias!
<T>(val: T) => T
togglrBodyno debe ser una cadena, ya que quieres que sea una función