HarmonyOS 泛型构造方法在ets中的实现

class ServiceBuilder {
  // ServiceBuilder 的属性和方法
}

class SomeService {
  constructor(builder: ServiceBuilder) {
    // SomeService 的构造函数逻辑
  }
}

class ServiceFactory {
  public build<T>(service: new (builder: ServiceBuilder) => T): T {
    return new service(new ServiceBuilder());
  }
}

// 示例使用
const factory = new ServiceFactory();
const serviceInstance = factory.build(SomeService);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

以上ts中的代码怎么在ets中实现?

HarmonyOS
2024-12-23 16:09:54
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

目前参数不支持构造函数函数类型,实现参考示例:

interface BeeKeeper {
  hasMask: boolean;
}

interface ZooKeeper {
  nametag: string
}

interface Animal {
  numLegs: number
  keeper?: BeeKeeper | ZooKeeper
}

export class createInstance {
  options: Animal

  constructor(option: Animal) {
    this.options = option;
  }

  getNumLegsValue(): number {
    if (this.options.numLegs !== undefined) {
      return this.options.numLegs;
    }
    return 0;
  }

  getKeeperValue(): BeeKeeper | ZooKeeper | undefined {
    if (this.options.keeper !== undefined) {
      return this.options.keeper;
    }
    return undefined;
  }
}

const numLegsValue = new createInstance({ numLegs: 123456 }).getNumLegsValue();
const KeeperValue = new createInstance({ numLegs: 123456, keeper: { hasMask: false } }).getKeeperValue();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
分享
微博
QQ
微信
回复
2024-12-23 18:02:40


相关问题
HarmonyOS ArkTS如何实现构造函数
1449浏览 • 1回复 待解决
HarmonyOS ArkTS类型判断
828浏览 • 1回复 待解决
HarmonyOS ArkTS问题
850浏览 • 1回复 待解决
HarmonyOS 类型判断
905浏览 • 1回复 待解决
HarmonyOS 组件如何添加
984浏览 • 1回复 待解决
如何在ArkTS定义和使用?
1727浏览 • 1回复 待解决
HarmonyOS属性如何初始化?
1271浏览 • 1回复 待解决
参数转换为Object编译失败
1372浏览 • 1回复 待解决
HarmonyOS ArkTS支持子组件接受T吗
841浏览 • 1回复 待解决
ets文件怎么调用ts文件定义方法
4048浏览 • 1回复 待解决