目录
implements字句
类可以实现接口,使用笑键字implements
可以使用一个implements子句来检查一个类,是否满足了一个特定的接口。如果一个类不能正确地实现它,就会发出一个错误
注意点:
实现一个带有可选属性的接口并不能创建该属性
只要一个接口继承了某个类.那么就会继承这个类中所有的属性和方法,但是只会继承属性和方法的声明,不会继承属性和方法实现
与extends的区别
extends:继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法
implements:继承某个类,必须重写才可以使用
interface IPerson{
name:string
age:number
sex?:string
show():void
}
interface Imusic{
music:string
}
class Person implements IPerson,Imusic{
name: string='许嵩'
age:number=20
sex:string='男'
music:string='庐州月'
show(){
console.log(`我是${this.name},今年${this.age}岁了,我唱过${this.music}`);
}
}
let a = new Person()
a.show()
interface Ipon extends Person{
aaa:string
}
class IPon extends Person implements IPon{
aaa: string='周杰伦'
}
let b = new IPon()
console.log(b.aaa);
泛型基本使用
泛型可以理解为宽泛的类型,通常用于类和函数。使用的时候我们再指定类型
泛型不仅可以让我们的代码变得更加健壮,还能让我们的代码在变得健壮的同时保持灵活性和可重用性
通过用<T>来表示,放在参数的前面
let getArray = <T>(value:T,items:number):T[]=>{
return new Array(items).fill(value)
}
let a = getArray<string>('周杰伦',10)
console.log(a);
泛型约束
在TS中&#x