HarmonyOS ArkTS 关于重载的实现方式?

如题:HarmonyOS ArkTS 关于重载的实现方式?

阅读 623
1 个回答

可以使用可选参数实现重载效果:

export class Test {
  private name: string = '';
  private age: number;

  constructor(name?: string, age: number = 18) {
    if (name) {
      this.name = name;
    }
    this.age = age;
  }

  getAge(): number {
    return this.age;
  }

  getName() {
    return this.name;
  }

  hasSkill(skills?: Array<string> | string): string {
    let skillsMsg = '阅读';
    if (skills) {
      if (typeof skills === 'string') {
        skillsMsg += skills;
      } else {
        skills.forEach(s => {
          skillsMsg += '、' + s;
        });
      }
    }
    return '拥有的技能为:' + skillsMsg;
  }
}

// 调用示例
let t1 = new Test();
let t2 = new Test('t2Name');
let t3 = new Test('t3Name', 100);

console.log(`t1# name: ${t1.getName()} , age: ${t1.getAge()}, 能力有: ${t1.hasSkill()}`);
console.log(`t2# name: ${t2.getName()} , age: ${t2.getAge()}, 能力有: ${t2.hasSkill('算数')}`);
console.log(`t3# name: ${t3.getName()} , age: ${t3.getAge()}, 能力有: ${t3.hasSkill(['唱歌', '跳舞'])}`)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进