TS中interface和type的主要区别

1.语法:

  • interface:使用interface关键字来定义接口。
  • interface Person {
        name: string
        age:number
    }
  • type:使用type关键字来定义类型别名。
  • type Person = {
        name:string
        age:number
    }

2.对象类型的描述

  • interface:可以描述对象的结构,包括属性、方法和索引签名等。接口可以被实现(implements)。
  • type:可以描述对象的结构,包括属性、方法和索引签名等。类型别名不能被实现。

3.类型合并

  • interface:可以多次声明同一个接口,并且会自动合并接口中相同名称的成员。
  • type:不支持声明合并。

4.对于其他类型的描述

  • interface:主要用于描述对象类型,虽然可以描述函数类型,但不能直接描述基本类型、联合类型等。
  • type:可以描述对象类型、基本类型、联合类型、交叉类型、元组等。

5.继承和实现

  • interface:可以通过继承其他接口来扩展自身,使用extends关键字。
  • type:不支持直接的继承,但可以使用交叉类型(Intersection Types)来合并多个类型。

        总的来说,interface和type在某些方面有相似的功能,但它们也有一些区别。一般来说,当你要描述对象的结构和行为时,优先选择使用interface,当你需要使用联合类型、交叉类型等高级类型时,或者需要给现有类型起一个别名时,可以使用type来定义类型别名。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值