我是打字新手,我有两门课.在父类中,我有:

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;
    };
  }
}

在 children 班,我有:

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来完全忽略它.

Typescript相关问答推荐

如何在类型脚本中使用条件陈述循环

交叉点对数字和布尔的处理方式不同

在泛型类型中对子代执行递归时出错

在键和值为ARGS的泛型函数中未正确推断类型

使用泛型keyof索引类型以在if-condition内类型推断

在分配给类型的只读变量中维护const的类型

带下拉菜单的Angular 响应式选项卡

ApexCharts条形图未显示最小值.负值

如何将v-for中的迭代器编写为v-if中的字符串?

使用2个派生类作为WeakMap的键

TypeScrip错误:为循环中的对象属性赋值

TS2739将接口类型变量赋值给具体变量

将超类型断言为类型脚本中的泛型参数

从类型脚本中元组的尾部获取第n个类型

在Google授权后由客户端接收令牌

Typescript .根据枚举输入参数返回不同的对象类型

在TS泛型和记录类型映射方面有问题

typescript如何从映射类型推断

从联合提取可调用密钥时,未知类型没有调用签名

如何在Vue动态类的上下文中解释错误TS2345?