エラー: 呼び出しシグネチャのない型の式を呼び出すことはできません 質問する

エラー: 呼び出しシグネチャのない型の式を呼び出すことはできません 質問する

私は TypeScript を初めて使用しており、クラスが 2 つあります。親クラスには次のものがあります:

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 が返す関数には呼び出しシグネチャがあると思いますか? 関数の型付けに関する重要な点を誤解していると思いますが、それが何なのかわかりません。

ありがとう!

ベストアンサー1

返される関数には呼び出しシグネチャがありますが、: anyシグネチャを追加することで、Typescript にそれを完全に無視するように指示しました。

おすすめ記事