Я новичок в машинописи, и у меня два класса. В родительском классе у меня есть:
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, имеет подпись вызова? Я думаю, что неправильно понимаю что-то важное о типизации функций, но я не знаю, что это такое.
Спасибо!
<T>(val: T) => T
togglrBody
не должно быть строкой, так как вы хотите, чтобы это была функция