TypeScript学习总结(6)

当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的。

 一、接口的定义

接口使用 interface 关键字来声明

接口名称(比如,此处的IPerson),可以是任意合法的变量名称。

声明接口后,直接使用接口名称作为变量的类型。

因为每一行只有一个属性类型,因此,属性类型后没有;(分号)

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

interface Employee extends Person {
  employeeId: number;
}

const emp: Employee = {
  name: "John",
  age: 30,
  employeeId: 12345
};

二、接口与类型别名的对比 

类型别名不仅可以用于对象类型,还可以用于基本类型、联合类型、元组类型等。 

type Person = {
  name: string;
  age: number;
};

type Employee = Person & {
  employeeId: number;
};

const emp: Employee = {
  name: "John",
  age: 30,
  employeeId: 12345
};

相同点:都可以给对象指定类型
不同点:
接口:只能为对象指定类型
类型别名:不仅可以为对象指定类型,实际上可以为任意类型指定别名

三、接口继承

如果两个接口之间有相同的属性或方法,可以将公共的属性或方法抽离出来,通过继承来实现复用比如,这两个接口都有x、y两个属性,重复写两次,可以,但很繁琐。

interface Point2D { x: number, y: number }
interface Point3D { x: number, y: number, z: number }

使用接口继承后

interface point2D { x: number, y: number }
interface point3D extends point2D { z: number }

使用 extends(继承)关键字实现了接口Point3D继承Point2D
继承后,Point3D就有了Point2D的所有属性和方法(此时,Point3D同时有x、y、z三个属性)。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值