Skip to content

(1)type能够表示非对象类型,而interface只能表示对象类型(包括数组、函数等)。

(2)interface可以继承其他类型,type不支持继承。

(3)同名interface会自动合并,同名type则会报错。也就是说,TypeScript 不允许使用type多次定义同一个类型。

(4)interface不能包含属性映射(mapping),type可以,详见《映射》一章。

(5)this关键字只能用于interface

(6)type 可以扩展原始数据类型,interface 不行。

(7)interface无法表达某些复杂类型(比如交叉类型和联合类型),但是type可以。

YisuX.com