You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript类继承调用super提示未提供参数TS2554报错

报错根因

TypeScript类继承规则要求:子类构造函数调用super()时,入参必须完全匹配直接父类的构造函数参数定义,这个规则和父类内部如何调用它自身的父类构造没有关联。
你的代码里:

  • Dog的直接父类是Enemy,Enemy的构造函数明确定义需要2个入参:texture: PIXI.Texture、game: Game
  • 但Dog里写的super(texture)只传入了1个参数,缺失了要求的game参数,因此触发Expected 2 arguments, but got 1.ts(2554)报错。

你之前尝试修改Enemy类内部的super()调用、给PIXI.Sprite传2个参数的方向完全错误:Enemy的直接父类是PIXI.Sprite,它的构造函数仅支持0-1个入参,给它传2个参数自然触发参数过多的报错,问题根本不出在Enemy和PIXI.Sprite的继承环节。

修复方法

只需要修改Dog类里的super()调用,把Enemy构造函数要求的两个参数完整传入即可,修复后的Dog类代码如下:

export class Dog extends Enemy {
  constructor(texture: PIXI.Texture, game: Game) {
    // 传入Enemy构造所需的全部2个参数
    super(texture, game);
    // 无需额外写this.game = game,Enemy构造中已经完成该属性赋值,Dog可直接继承使用
  }
}
额外注意

如果修改代码后报错没有消失,优先检查两个点:

  • 是否改错了文件(你之前已经出现过这类操作失误),确认当前编辑的是项目实际引用的类文件
  • TS服务缓存了旧的类型信息,重启IDE或者TS语言服务即可刷新校验结果

内容的提问来源于stack exchange,提问作者marry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 23:21:34