HarmonyOS ts转ArkTS问题?

在ts中能用的一些方式转成ets没办法使用了。demo如下:

class Table {}
class ATable extends Table {}
class BTable extends Table {}
class CTable extends Table {}

export default class DataBase {
  private static readonly tableMap = new Map<Function, Table>()

  private static readonly tableTypes = [ATable, BTable, CTable]

  static getTable<T extends Table>(tableClass: new () => T): T {
    if (!DataBase.tableMap.has(tableClass)) {
      DataBase.tableMap.set(tableClass, new tableClass());
    }
    return DataBase.tableMap.get(tableClass) as T
  }

  static getTable2<T extends Table>(this: new () => T): T {
    if (!DataBase.tableMap.has(this)) {
      DataBase.tableMap.set(this, new this());
    }
    return DataBase.tableMap.get(this) as T
  }

  static init() {
    for (let tableType of this.tableTypes) {
      this.getTable(tableType)
    }
  }

  static testCase() {
    const t1 = this.getTable(ATable)
    const t2 = this.getTable2<ATable>()
    console.log("equals : " + (t1 === t2))
  }
}
阅读 455
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进