主题
interface 接口
介绍
当一个对象类型被多次使用时,使用接口(interface)来描述对象类型,来进行复用。
type vs interface
type可以为联合类型、对象类型、元组类型等起别名,interface更聚焦于描述对象结构。interface可以通过extends继承其他接口或对象类型;type没有同名的“继承”语法,通常通过&做组合。
基本使用
ts
// 定义接口
interface IPerson {
readonly id: number
name: string
age?: number // ? 代表可选
say(): void
greet?(name: string): void
}
// 使用接口
const p: IPerson = {
id: 112,
name: 'foo',
say() {},
}继承
继承 interface
ts
// 定义接口
interface Point2D {
x: number
y: number
}
// 继承接口
interface Point3D extends Point2D {
z: number
}
const pInterface: Point3D = {
x: 11,
y: 22,
z: 33,
}继承 type
ts
// 定义 type
type Point2D = {
x: number
y: number
}
// interface 也可以继承对象类型别名
interface Point3D extends Point2D {
z: number
}
const pType: Point3D = {
x: 11,
y: 22,
z: 33,
}