interface和type的区别

本文探讨了JavaScript中type和interface的区别,包括类型定义、对象表示、继承、扩展功能以及各自的使用场景。type主要用于基础类型、联合类型、元组和映射类型,而interface专注于对象数据结构的定义,特别是当需要合并属性时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 重名会自动合并属性扩展的
                定义对象数据结构

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值