type type_chartParam={
width?:number,
height?:number,
radius?:number
}
class Square {
public wtidth:number;
public height:number;
constructor (width_:number,height_:number)
constructor (paramsObj:type_chartParam)
constructor (value:any,height=0){
if( typeof value==="object") {
this.wtidth=value.width
this.height=value.height
}else{
this.wtidth=value
this.height=height
}
}
public getArea():number {
return this.wtidth*this.height
}
}
let square=new Square(40,50)
console.log(square.getArea());
let chartParams:type_chartParam={width:50,height:90}
let square2=new Square(chartParams)
console.log(square2.getArea());
方法的重载
class ArrayList {
constructor (public element:Array<object>) {
}
get(index:number) {
return this.element[index]
}
show () {
this.element.forEach(ele=>{
console.log(ele);
})
}
remove (value:number) :number
remove (value:object) :object
remove(value:number |object):number |object {
this.element=this.element.filter(((ele,index)=>{
if(typeof value==="number") {
return value !==index
}else {
return JSON.stringify(value)!==JSON.stringify(ele)
}
}))
return value
}
}
let stuOne={stuName:'zhangsan',age:23}
let stuTwo={stuName:'lisi',age:29}
let stuThree={stuName:'liqing',age:30}
let arrList=new ArrayList([stuOne,stuTwo,stuThree])
arrList.show()
let value=arrList.remove({stuName:'zhangsan',age:23})
console.log(value,'value');
arrList.show()