Jestem zupełnie nowy w maszynopisie i mam dwie klasy. W klasie rodzicielskiej mam:
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;
};
}
}
W klasie dziecięcej mam:
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);
}
}
Zarówno showMore, jak i ShowLess wyświetlają błąd „Nie można wywołać wyrażenia, którego typ nie ma sygnatury wywołania”.
Ale myślę, że funkcja, którą zwraca setProp, CZY ma sygnaturę wywołania? Myślę, że źle rozumiem coś ważnego w typowaniu funkcji, ale nie wiem, co to jest.
Dzięki!
<T>(val: T) => T
togglrBody
nie powinien być łańcuchem, ponieważ chcesz, aby był to funkcja