可以使用可选参数实现重载效果: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(['唱歌', '跳舞'])}`)
可以使用可选参数实现重载效果: