interface和type的主要区别

文章详细阐述了在编程中interface与type的区别,包括它们在定义不同类型如基础类型、联合类型、交叉类型和元组时的用法,接口的继承与合并,以及type的限制。同时,提到了接口的合并声明可能导致的编译错误。

区别1:定义类型范围不同
interface 只能定义对象类型或者接口当名字的函数类型

type可以定义任何类型包括基础类型、联合类型、交叉类型、元组

// 定义基础类型
type num = number
// 定义联合类型
type baseType = string | boolean | number
// 定义交叉类型
interface Cat {
    name: string
}
interface Dog {
    color: string
    age: number
}
type Pet = Cat & Dog
// 定义元组类型
type NewPet = [Cat, Dog]

区别2:接口可以extends一个或者多个接口(逗号分割)或者类实现一个或者多个接口,也可以继承type类型,type类型没有继承功能,一般接口继承类和type比较少见

区别3:用type交叉类型&可以让类型中的成员合并成一个新的type 类型,但接口不能交叉合并

区别4:接口可以合并声明,也就是定义相同名称的接口会合并声明不过如果有相同的属性会编译错误

interface Errror {
    msg: string
}
interface Errror {
    code: Number
}
// 接口合并
let err: Errror = {
    msg: "没有权限",
    code: 403
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值