在ts中type、interface都可以用来描述对象类型(对象、函数)。
type是类型别名,用来给类型起新名字,不仅可以用来表示基本类型,还可以表示对象类型、联合类型、元素、交集。
type a = string
type b = string|number
type obj = {
a:string,
b:string|number
}
type Fn = (a:stirng,b:string)=>void 0
type S = P & {sid: string}
interface是接口,仅用于描述对象类型。
interface Obj {
a:string;
b:string|number;
}
interface Fn {
(a:string,b:string|number):void
}
interface S extends P
共同点:
- 都可用来定义对象、函数
- 都可以实现继承;type使用&实现继承、interface使用extends实现继承
不同点
- type可以声明基本类型、元组类型
- interface可以声明合并(即声明重复名字合并)