Ошибка: не удается вызвать выражение, тип которого не имеет подписи вызова
Я новичок в машинописи, и у меня есть два класса. В родительском классе у меня есть:
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;
};
}
}
В детском классе у меня есть:
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, и ShowLess выдают мне ошибку: «Невозможно вызвать выражение, тип которого не имеет подписи вызова».
Но функция, которую возвращает setProp, имеет подпись вызова, я думаю? Я думаю, что неправильно понимаю что-то важное в типизации функций, но я не знаю, что это такое.
Спасибо!