我是打字稿的新手,并且有两节课。在父类中,我有:
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返回的函数确实具有呼叫签名吗?我认为我误解了有关函数类型的一些重要信息,但我不知道它是什么。
谢谢!
它返回的函数具有一个调用签名,但是您告诉Typescript通过添加: any其签名来完全忽略它。
: any
不要那样做