typescript之类型兼容

typescript的类型系统是基于结构子类型的,这种基于结构子类型的类型系统是基于组成结构的,只要具有相同类型的成员,则两种类型即为兼容的。

class Person{
  name: string;  
  age: number;
}
class Cat{
  name: string;  
  age: number;
}
function getPerson(p:Person){
  p.name
}
let cat = new Cat();
getPerson(cat)

如果两种类型中存在差异,则可以采用接口来达到兼容

interface IFly{
  fly():void;
}
class Person implements IFly{
  name: string;  
  age: number;
  study(){
   }
  fly(){
  }
}
class Cat implements IFly{
  name: string;  
  age: number;
  catchMouse(){
  }
fly(){}
}
let p1 = new Person();
let c1 = new Cat();
function fn2(arg: IFly){
  arg.fly();
}
fn2(p1);
fn2(c1);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容