区别1
- 使用 interface 和 type 都是表示给定数据结构的常用方法。
- 定义的方式略有不同。
- type 定义的时候有 "=" 符号
typescript
interface User {
name: string,
age: number
}
type User = {
name: string,
age: number
}
区别2
- interface 可以多次声明同一接口。它们将合并在一起形成一个接口定义。
- type 只能声明一次。
interface:可以多次声明,并最终可共同复用;
typescript
interface User{
name: string
}
interface User{
age: number
}
let Person: User = {
name: 'myName',
age: 100
}
type:再次声明会报错
typescript
type User = {
name: string
}
type User = { // 报错,Throw error: Duplicate identifier
age: number
}
注意:
- 如果希望定义一个变量类型,就用 type,如果希望能够继承并约束,就用 interface。
- 如果您是库的作者或为外部库创建类型定义,请使用 interface。方便其他人也可以扩展它们。
- 如果你不知道该用哪个,建议使用 type。