interface语句和type语句的主要区别:
interface X {
a: number
b: string
}
type X = {
a: number
b: string
};
编号 | interface语句 | type语句 |
---|---|---|
1 | 接口声明总是引入命名对象类型。 | 类型别名声明可以为任何类型的类型引入名称,包括原始类型、联合类型和交集类型。 |
2 | 接口可以在extends 或implements 子句中命名。 |
对象类型文字的类型别名不能在 extends 或 implements 子句中命名。 |
3 | 接口创建了一个随处使用的新名称。 | 类型别名不会创建新名称。 |
4 | 一个接口可以有多个合并的声明。 | 对象类型文字的类型别名不能有多个合并声明。 |