interface和type 的区别?interface类型,type类型定义使用场景

// interface 只是定义结构契约,定义具有相似的名称和类型的对象,还可以定义函数,接口,类
// type (alias)类型别名 interface只能定义对象类型,而type可以定义基础类型,联合类型,交叉类型

//定义两个不同的接口类型
interface Dog {
  name: string
}
interface Cat {
  age: number
}

// 1、联合类型
 type animal = Dog | Cat

// 元组
 type animal = [Dog,Cat]

// 2、扩展性
// 接口可以extends implements,从而可以扩展多个接口或者类,类型没有扩展功能只能交叉合并
interface Person {
    name:string
}
interface User extends Person{
    age:number
}

// 3、type类型 & type类型
 type Person = {name:string}
 type User = Person & {age:number}

// 4、interface类型 & type类型
 interface Person{
     name:string
 }
 type User = {age:number}& Person

// 5、合并申明
// 定义相同名称的interface,或者相同名称的type合并的情况
 interface Person{
     name:string
 }
 interface Person{
     age:number
 }

//type定义相同报错
 type User = {name:string}
 type User = {age:number}
// 标识符“User”重复

// 6、:type 可以获取typeof返回的类型作为值
 let div = document.getElementById('add')
 type addDom = typeof div

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值