type和interface功能是基本一样的,唯一的区别就是type声明的不能继续追加新的属性,interface是可以拓展的。
type
type Point ={
x:number,
y:number
let point:Point = {x:10,y:10};
interface
interface Person{
name:string,
age:number
}
let jiaqi :Person = {
name:'jiaqi',
age:32
}
区别
1拓展的语法
type使用&
来进行拓展:
type Animal ={
name:string
type Rabbit = Animal &{
age:number
}
interface使用extends
来拓展:
interface girl {
name:string
}
interface woman extends girl{
age:number
}
2.type不可以新增其他的属性,interface可以
interface girl {
name:string
}
// 可以继续追加属性
interface girl{
gender:string
}
type Animal = {
name: string
}
type Animal = {
haha:string
}
// 会报错,提示标识符重复