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

以上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();
分享
微博
QQ
微信
回复
2024-12-23 18:02:40
相关问题
HarmonyOS ArkTS如何实现构造函数
989浏览 • 1回复 待解决
HarmonyOS 类型判断
492浏览 • 1回复 待解决
HarmonyOS ArkTS问题
454浏览 • 1回复 待解决
HarmonyOS ArkTS类型判断
319浏览 • 1回复 待解决
HarmonyOS 组件如何添加
603浏览 • 1回复 待解决
如何在ArkTS定义和使用?
1007浏览 • 1回复 待解决
HarmonyOS属性如何初始化?
832浏览 • 1回复 待解决
参数转换为Object编译失败
1016浏览 • 1回复 待解决
HarmonyOS ArkTS支持子组件接受T吗
389浏览 • 1回复 待解决
ets文件怎么调用ts文件定义方法
3486浏览 • 1回复 待解决