1、类
注意:普通的 JOSN对象中也可以有getter和setter方法
class Employee {
//默认为public
// name:string
// salary:number
//可选参数不用初始化
private allocatedBonus?:number
//增加public,相当于定义了两个字段
constructor(public name:string,public salary:number){}
//getter/setter
//对使用者来说,相当于一个bonus字段
set bonus(v:number){
this.allocatedBonus = v
}
get bonus(){
return this.allocatedBonus || 0 //因allocatedBonus为可选字段
}
}
//注意:普通的 JOSN对象中也可以有getter和setter方法
const emp1 = new Employee('james',10000)
//掉用set方法
emp1.bonus = 20000
//调用get方法
console.log(emp1.bonus)//20000
2、类的继承
//类的继承
class Manager extends Employee {
private reporters:Employee[]
//此处无须public,否则成为Manager的自身属性
constructor(name:string,salary:number){
super(name,salary)
this.reporters = []
}
addReporter(e:Employee){
this.reporters.push(e)
}
}
const emp2 = new Employee('john',5000)
emp2.bonus = 10000
const manager = new Manager('mary',20000)
manager.addReporter(emp2)
manager.bonus = 50000
console.log(manager)