extends:继承
1、接口继承
interface Ia {
id:string
}
interface Ib extends Ia {
name:string
}
// 接口Ib继承了Ia,Ib拥有Ia的所有属性,并且可以有自己的属性
// 最后Ib 为
Ib {
id:string
name:string
}
2、类继承 (和接口继承一样)
class Ca {
id:string
}
class Cb extends Ca {
name:string
}
// 类Cb继承了Ca,Cb拥有Ca的所有属性,并且可以有自己的属性
// 最后Cb 为
Cb {
id:string
name:string
}
3、泛型约束
interface Ia{
id:string
}
function logName<T extends Ia>(val: T) {
}
// T extends Ia T继承了Ia,Ia拥有id属性,所以T必须拥有id属性
// 所以调用该函数传递的参数必须包括id属性,从而实现了类型约束