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

如何用TypeScript实现Promise接口并修复CarResult类实现报错?

错误原因

你使用implements Promise<CarElement>时,TypeScript 要求CarResult类必须完整实现 Promise 接口定义的所有成员,包括报错提示的then、catch、finally方法和[Symbol.toStringTag]内置属性,当前类仅定义了bus属性,不符合接口约束,因此抛出错误。
另外你的代码还存在一处隐藏的类型不匹配:CarElement接口定义的bus是Promise<Int32Array>类型,但你在CarResult里声明的bus是Int32Array类型,二者并不兼容,后续也需要修正。

修复方案

根据你的实际需求选择对应方案即可:

方案一:需要CarResult本身是Promise子类

无需手动实现所有Promise方法,直接继承内置的Promise类即可满足类型要求:

export interface CarElement {
  bus: Promise<Int32Array>;
}

class CarResult extends Promise<CarElement> {
  constructor() {
    super((resolve, reject) => {
      // 此处编写你的异步业务逻辑,示例:
      const busData = new Int32Array(8);
      resolve({
        bus: Promise.resolve(busData)
      });
    });
  }
}

方案二:仅需要CarResult持有CarElement结构数据,不需要是Promise类型

移除implements Promise<CarElement>,改为直接实现CarElement接口即可:

export interface CarElement {
  bus: Promise<Int32Array>;
}

class CarResult implements CarElement {
  // 修正bus类型为Promise<Int32Array>
  bus: Promise<Int32Array> = Promise.resolve(new Int32Array());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:03