interface和type的区别

1.type(类型别名)

用来给一个类型起新名字,使用 type 创建类型别名。类型别名不仅可以用来表示基本类型,还可以用来表示对象类型、联合类型、元组和交集。

2.interface(接口)

接口是命名数据结构(例如对象)的另一种方式;与 type 不同,interface 仅限于描述对象类型。接口的声明语法也不同于类型别名的声明语法。

相同之处:

        1.都可以用来定义对象和函数

        2.都可以实现继承:type 和 interface 并不互斥。type 可以继承 interface,反之亦然。只是在实现形式上,稍微有些区别。

        3.type和interface都支持扩展

区别:

       1. type侧重于直接定义类型

        2. type 还可以给一个或多个类型起一个新名称(当变量用)

        3.type可以声明基本类型

type userName = string;

        4.type可以声明元组类型

type Data = [number, string];

        5.type可以通过typeof操作符来声明

type myType = typeof someObj;

        6.type可以声明联合类型

type userMsg = string | number; 

        7.interface可以声明合并

        如果是 type 的话,就会报重复定义的警告,因此是无法实现声明合并

使用场景:

        type的使用场景是:

                一般定义基本或联合类型
                一般定义元组类型
                一般定义函数类型
                定义映射类型

        interface的使用场景是:

                需要interface 重名会自动合并属性扩展的
                定义对象数据结构

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值