Saya baru mengenal ketikan, dan saya memiliki dua kelas. Di kelas orang tua saya memiliki:
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;
};
}
}
Di kelas anak saya memiliki:
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);
}
}
Baik showMore dan ShowLess memberi saya kesalahan, "Tidak dapat memanggil ekspresi yang tipenya tidak memiliki tanda tangan panggilan."
Tetapi fungsi yang dikembalikan setProp APAKAH memiliki tanda tangan panggilan, menurut saya? Saya pikir saya salah paham tentang sesuatu yang penting tentang pengetikan fungsi, tetapi saya tidak tahu apa itu.
Terima kasih!
<T>(val: T) => T
togglrBody
tidak boleh berupa string, karena Anda menginginkannya menjadi fungsi