TS中 type 和 interface的区别

转原文链接:https://www.jianshu.com/p/965b8583ff74

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

你可能感兴趣的:(TS中 type 和 interface的区别)