Type与Interface区别
可以在extend或Implements子句中命名接口,但是不能为对象类型文字提供类型别名。
一个接口可以具有多个合并的声明,但是对象类型文字的类型别名不能。
type
可以用于其它类型(联合类型、元组类型、基本类型[原始值]),interface
不支持
Type不同点
1 | type PartialPointX = { x: number }; |
type
能使用in
关键字生成映射类型, 但interface
不行
1 | type Keys = 'firstname' | 'surname' |
Interface不同点
interface
可以多次定义,并被视为合并所有声明成员 type
不支持
1 | interface Point { |
相同点
- 都可以描述一个对象或者函数
- 都可以进行拓展