Eu sou novo em datilografado e tenho duas classes. Na classe pai eu tenho:
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;
};
}
}
Na classe infantil, tenho:
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 e ShowLess me dão o erro "Não é possível invocar uma expressão cujo tipo não possui assinatura de chamada".
Mas a função que setProp retorna TEM uma assinatura de chamada, eu acho? Acho que estou entendendo mal algo importante sobre tipos de funções, mas não sei o que é.
Obrigado!
<T>(val: T) => T
togglrBodynão deve ser uma string, desde que você quer que ele seja uma função