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:定义对象和函数,两者都可