当前位置: 首页 > 面试题库 >

错误:无法调用类型缺少调用签名的表达式

耿建弼
2023-03-14
问题内容

我是打字稿的新手,并且有两节课。在父类中,我有:

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其签名来完全忽略它。

不要那样做



 类似资料: