TS中 type 和 interface的区别

type:类型别名 interface:接口

联合类型必须要type

//联合类型 和  交叉类型
type StringNumber = string | number;
let a: StringNumber;
a = "1";
a = 7;

Utility Types也必须要要用type

Utility Types 官网
Github Utility Types地址

interface可以合并同名接口,type不可以

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

interface可以继承interface,继承type,使用extends关键字,type也可继承type,也可继承interface,使用&

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。