• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

typescript中的类与接口的关系

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

类实现接口

接口可以规定一个类的定义必须包含某些内容。类实现接口使用关键字 implements。

interface UserInterface{
  name:string;
  age:number;
}

// 类实现接口
class User implements UserInterface{
  name:string;
  age:number;
  constructor(name:string,age:number){
    this.name = name
    this.age = age
  }
}

 

需要注意的是,使用接口定义的类,接口检测的是该类创建的实例是否符合接口规范,如果改一下上面的例子就会报错了:

class User implements UserInterface{
  static name:string; // error,加上 static,该属性不会添加到实例上,所以实例就不符合接口
  age:number;
  constructor(name:string,age:number){
    // this.name = name
    this.age = age
  }
}

 

接口继承类

接口可以继承一个类,当接口继承了该类后,只继承成员和成员类型,不包括实现。

class Point{
  x:number;
  y:number;
}

interface Point3d extends Point{
  z:number
}

const point3d:Point3d = {x: 3, y: 4, z: 5}

 

接口还能继承类中被 private 和 protected 修饰的成员,当接口继承的这个类中包含这两个修饰符修饰的成员时,这个接口只可被这个类或他的子类实现。

class A{
  protected name:string;
}

interface I extends A{}

class B implements I{
  name:string; // error, 属性“name”受保护,但类型“B”并不是从“A”派生的类
}

class C extends A implements I{
  name:string;
}

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
简单了解TypeScript发布时间:2022-07-18
下一篇:
TypeScript运算符发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap