type和interface的区别知多少? type和typedef
feilongw 2024-12-22 15:13 4 浏览 0 评论
在typescript里面,有两个概念十分容易混淆,那便是 type 和 interface,它俩都可以用来表示 接口,但是实际使用上会存在一些差异,因此本篇文章就准备聊聊它俩,彻底弄清它俩的联系与区别,废话不多说,开搞!
ppx.jpg
type和interface的相同点
在我看来,它俩就是对 接口定义 的两种不同形式,目的都是一样的,都是用来定义 对象 或者 函数 的形状,示例如下
interface example {
name: string
age: number
}
interface exampleFunc {
(name:string,age:number): void
}
type example = {
name: string
age: number
}
type example = (name:string,age:number) => void
复制代码
它俩也支持 继承,并且不是独立的,而是可以 互相 继承,只是具体的形式稍有差别
type exampleType1 = {
name: string
}
interface exampleInterface1 {
name: string
}
type exampleType2 = exampleType1 & {
age: number
}
type exampleType2 = exampleInterface1 & {
age: number
}
interface exampleInterface2 extends exampleType1 {
age: number
}
interface exampleInterface2 extends exampleInterface1 {
age: number
}
复制代码
可以看到对于interface来说,继承是通过 extends 实现的,而type的话是通过 & 来实现的,也可以叫做 交叉类型
type和interface的不同点
首先聊聊type可以做到,但interface不能做到的事情
- type可以定义 基本类型的别名,如 type myString = string
- type可以通过 typeof 操作符来定义,如 type myType = typeof someObj
- type可以申明 联合类型,如 type unionType = myType1 | myType2
- type可以申明 元组类型,如 type yuanzu = [myType1, myType2]
接下来聊聊interface可以做到,但是type不可以做到的事情
- interface可以 声明合并,示例如下
interface test {
name: string
}
interface test {
age: number
}
/*
test实际为 {
name: string
age: number
}
*/
复制代码
这种情况下,如果是type的话,就会报 重复定义 的警告,因此是无法实现 声明合并 的
这里特别感谢 酒薄不堪饮[1] 这位掘友,指出了此处之前存在的错误说法
结语
其实在typescript里,还有很多容易搞混淆的概念,如 extends 和 implements 等,还有一些高级概念,如 泛型。这些都是在ts里必知必会的东西,因此一定要细抠这些知识点
ts给我们的代码带来健壮性的同时,也引入了更多的概念和知识,因此需要我们不断地学习。在今后我也准备多输出一些关于ts的文章,加深自己对于ts的理解,同时也可以帮助到喜欢看我文章的朋友,好啦,就写到这里啦,over!
相关推荐
- win7如何录屏?手把手教你怎么录制电脑屏幕
-
现在大部分人的电脑是win10系统,但仍有小伙伴的电脑是win7电脑,有时候也需要对电脑屏幕进行录制。那你知道win7如何录屏吗?虽然win7电脑不像win10电脑有自带的录屏工具XboxGame...
- Windows系统必会的八个快捷键,让你效率提升数倍
-
前言:当电脑开启十几个窗口,你还在一个一个的最小化窗口时,别人可以瞬间回到电脑桌面;当电脑开启十几个窗口,你还在一个一个的最小化窗口再试图打开[我的电脑]窗口时,别人在你还没有最小化第一个窗口时已经打...
- 7个超实用的电脑截图快捷键
-
大家在截图时,最常用的就是QQ的截图方法。QQ可以说是聊天软件里截图功能做得最好的,截图软件里聊天功能做得最好的。其截图功能既简单又好用,只需要一个快捷键「Ctrl+Alt+A」。确定好截图窗口,鼠...
- Windos快捷键
-
办公软件中的快捷键我们了解不少,关于Windows系统的操作快捷键你知道几个呢?一、【Win+D】:快速切换到系统桌面(再按一下就可以返回到之前的页面)二、【Win+M】:最小化所有窗口(此组合键无法...
- 电脑Win键失灵没反应怎么修复?3步优化轻松修复
-
最近突然发现按键盘上的“Win键”失灵了,没有任何反应。这么一来很多和Win键相关的组合快捷键都使用不了了,比如:Win+R,Win+S,Win+I,Win+E,Win+Q。是我键盘坏了吗?我换了别的...
- Win7电脑的5大截屏方式,总有你不知道的!
-
有时需要将电脑屏幕上的内容截取下来,该怎么操作呢?或许你会用QQ截图,但其实windows系统已经自带了截图哦,今天我就为大家说道说道。1、按Prtsc键这样获取的是整个电脑屏幕的内容,可直接粘贴使用...
- Windows快捷键大全
-
一、常见用法:F1 显示当前程序或者windows的帮助内容。F2 当你选中一个文件的话,这意味着“重命名”F3 当你在桌面上的时候是打开“...
- win7截图快捷键有什么 win7自带截图快捷键怎么用
-
win7截图快捷键有什么?作为经典的操作系统版本,Windows7仍然被许多用户广泛使用。大家对Windows7系统的各项功能已经非常清楚,就像屏幕截屏的快捷键一样,大家也都相当熟悉。不过你是否知...
- win7音量调节窗口显示步骤
-
用户反馈在使用音量调节时,点击音量调节图标发现调节窗口不见了,下面给大家介绍显示win7音量调节窗口步骤。 1、同时按下快捷键“win+r”打开运行窗口,输入“regedit”命令并回车,如下图所示...
- Win7电脑如何快速截图
-
日常工作中经常需要截图,都都要借助第三方软件来截图,下面说一下Win7电脑全屏截图及部分截图的方法。将键盘的屏幕截图按钮PrScrn按钮,按PrScrn按钮截取整个屏幕,Ctrl+PrScr...
- 系统小技巧:为软件让路 关闭系统Win+快捷键
-
一些软件使用Win键加某个键作为快捷键来调用某个功能,但有时软件中所用快捷键与系统快捷键发生冲突,造成软件快捷键无法使用,尤其是早期开发的软件与Windows10之间的这种冲突比较普遍。如果暂时关闭...
- Win7电脑怎么快速锁屏?一个锁屏快捷键,帮你轻松锁定防偷看
-
平时我们在使用Win7系统电脑来进行学习或者是工作时,我们往往会因为有会议要开,或者是有事情要做,从而需要离开电脑。但是如果此时电脑上正在编辑很重要的文档,那么此时让电脑锁屏,不仅可以防止我们的隐...
- 最佳Windows 11键盘快捷键列表
-
想用键盘在Windows11上运行吗?以下是使用快捷方式在Windows11中执行常见任务的方法。尽管Windows10中支持的几乎所有快捷方式在Windows11中都保持不变,但微软古老...
- 五分钟包学会 笔记本装Win8.1详尽攻略
-
|责编:王冬奇经过半年多的等待,我们终于迎来了Windows8.1系统的2014UPDATE1升级。在此之前Windows8和Windows7相比引入了更简单直观、易于操作的WindowsU...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- excel换行 (95)
- 虚拟机安装 (78)
- web服务器安全配置 (77)
- excel2007视频教程 (82)
- 右键菜单恢复 (93)
- 启动项命令 (81)
- excel打开空白 (83)
- phpmyadmin 下载 (75)
- inventor教程 (81)
- flv文件播放 (83)
- tomcat 7 0 (82)
- 服务器正在运行中 (100)
- m3u8 (89)
- 矢量图是什么 (79)
- 静态ip怎么设置 (82)
- windows update是什么意思 (86)
- 文件切割 (77)
- filezilla_server (79)
- 裁切图片 (76)
- rank函数 (76)
- 网络地址分类 (79)
- 二维码转链接在线生成 (97)
- 字体在哪个文件夹 (78)
- solidworks工程图模板 (82)
- securecrt (77)