TS中interface和type的区别

文章类型:TypeScript

发布者:admin

发布时间:2023-02-27

一定义:

inteface:接口,主要用于类型检查,用于定义对象类型和描述,定义方法和事件,侧重于描述数据结构

type:类型别名,为类创建一个新名称,定义基础类型、联合类型、交叉类型,侧重于描述类型

二差异化

不同点

1:定义类型的范围上:inteface只能定义对象(function、object、class)类型,而type类型可以声明任何类型

2:扩展性上:接口可以才去extends、implements扩展,类没有,只能交叉合并

3:合并声明上:接口多个相同会合并成一起,而类同名会出现异常

4:

三代码

1:定义类型

interface A{name:string;
add:()=>void;
}
interface B{():void}

type C=()=>number;
type D=string;
type E={name:string,age:number}

2:扩展性上

interface A{name:string}
interface B extends A{age:number}

type C={sex:string}

interface D extends C{name:string}

type E={name:string}&C

type F ={age:number}&A

3:合并上

interface A{name:string}
interface A{age:number}
var x:A={name:'xx',age:20}

四建议:

1:需要被extends、implements,使用接口

2:使用联合类型或者元祖类型,使用类

3:定义对象和函数,两者都可