type和interface的区别

2023-11-12

type和interface都可以用来表示接口,但实际用的时候会有写差异。

1.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) => {  }

它俩也支持继承,并且可以互相继承。但是具体的形式稍有差别。

interface是通过extends实现的,type是通过&实现的。

    type aa = {
        name: string
    }

    interface bb {
        name: string
    }
    

    type cc = aa & {
        age: number
    }

    type cc = bb & {
        age: number
    }

    interface dd extends aa {
        age: number
    }

    interface dd extends bb {
        age: number
    }

2.type和interface的不同点

typeof

  1. type可以定义 基本类型的别名,如 type myString = string

  2. type可以通过 typeof 操作符来定义,如 type myType = typeof someObj

  3. type可以申明 联合类型,如 type unionType = myType1 | myType2

  4. type可以申明 元组类型,如 type yuanzu = [myType1, myType2]

interface

interface可以 声明合并,这种情况下,如果是type的话,就会报 重复定义 的警告,因此是无法实现 声明合并 的。

    interface test {
        name: string
    }

    interface test {
        age: number
    }
    
    /*
        test实际为 {
            name: string
            age: number
        }
    */

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

type和interface的区别 的相关文章

随机推荐

  • C++ STL学习网站

    STL教程 C STL快速入门 非常详细
  • java web项目中 Log4j 的配置

    1 引入jar包 log4j 1 2 14 jar 2 在web工程中的web xml文件中新增如下配置
  • 润和HCIP认证套件烧写镜像失败的问题解决

    为了学习OpenHarmony小型和标准设备的开发 买了润和的HCIP认证套件进行开发 按照https device harmonyos com cn docs documentation guide ide hi3516dv300 com
  • ora-12592 TNS:包错误

    导入数据发生 ora 12592 TNS 包错误 网上搜寻资料发现原因是导入时间长导致防火墙触发了 解决方法 1 关掉防火墙尝试导入 2 如果是用本地客户端导入可以尝试到服务器上导入 3 在数据库服务端和客户端配置sqlnet ora文件
  • Access、SQLite、HSQLDB、Sybase、MySQL、DB4O比较

    本文转自 http blog sina com cn s blog 465bc6c90100eums html 一 Access 数据类型有些另类 而且密码太容易被攻破 性能不高 只能用在Windows程序上 一般说来 单个表不超过10万少
  • Latex表和图的显示、引用和并列

    一 表 1 1表的生成 一般我在写论文时 会直接用https www tablesgenerator com生成表的latex编译代码 一般的编译代码如下 begin table htbp begin center caption 标题 l
  • 面试准备:海量数据的处理方式

    文章目录 背景 数据排序 分治 字典树 数据去重 哈希 压缩存储空间 面试题汇总 1 TopK 2 查找中位数 3 随机选择K个数 4 找出出现次数最多的IP 背景 海量数据的处理主要包括三个方面 数据排序 数据统计 数据计算 我们可以简单
  • 扫雷小游戏最详细讲解【C语言】

    大家好 我是同学 森 一名计算机爱好者 今天让我们进入小游戏开发学习模式 若有错误 请多多指教 小主使用的是VS2019编译器 点赞 收藏 留言 都是我创作的最大的动力 目录 大家好 我是同学 森 一名计算机爱好者 今天让我们进入小游戏开发
  • Git GUI,Git Bash,Git CMD之间的区别

    Git CMD就像使用git命令的常规Windows命令提示一样 它允许您通过命令行使用所有Git功能 如果您已熟悉Windows cmd并且只能在Windows上工作 则非常有用 Git Bash在Windows上模拟bash环境 它允许
  • Mysql JDBC和事务(细致而易懂)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 安装环境 一 JDBC 二 preparedstament和statement的区别 三 批量处理 四 事务提交控制 最后 安装环境 1 jdk17 2 MySQL8
  • Qt自定义类使用自定义含参信号与槽

    最近在自定义类中使用了信号来连接到MainWindow类中的槽函数 具体操作如下 要点一 继承QObject 在头文件中初始化自定义类MyThread1 这里由于继承的QThread已经继承了QObject 无需嵌套继承 故不必public
  • Flutter 凸起效果底部导航栏一

    大多app中都会带有底部导航栏 系统默认自带的导航条不够新颖 今天我们改造一下导航条 将中间的按钮起到凸起的效果 特别有的app 中间常用扫一扫功能 Flutter为我们提供了一个控件BottomNavigationBar 结合Bottom
  • Linux——(第九章)磁盘分区、挂载

    目录 一 Linux分区概述 1 原理介绍 2 硬盘说明 二 查看磁盘和分区 1 du查看文件和目录占用的磁盘空间 2 df查看磁盘空间使用情况 3 lsblk查看设备挂载情况 4 mount unmount 挂载 卸载 5 fdisk 分
  • 解决VS Code开发Python3语言自动补全功能

    https www cnblogs com yuer20180726 p 10942372 html 1 打开设置界面 2 使用快捷键组合 Ctrl Shift p 入setting 选中首选项的user setting模式设置界面 在打开
  • 华为OD机试真题 Java 实现【光伏场地建设规划】【2023Q1 100分】

    一 题目描述 祖国西北部有一片大片荒地 其中零星的分布着一些湖泊 保护区 矿区 整体上常年光照良好 但是也有一些地区光照不太好 某电力公司希望在这里建设多个光伏电站 生产清洁能源 对每平方公里的土地进行了发电评估 其中不能建设的区域发电量为
  • 求字符串最长公共前缀

    第一种方法 for循环第一个字符串 然后再for循环除了第一个字符串以外的其它字符串 比较其它字符串是否以某个字符串开头 从而找到公共前缀 function getCommonStr arr if arr Array isArray arr
  • 面向对象编程(概念)

    面向对象编程 概念 面向过程 面向对象 面向过程思想 1 步骤清晰简单 第一步做什么 第二步做什么 2 面对过程是和处理一些较为简单的题目 面向对象思想 1 物以类聚 分类的思维模式 思考问题首先会解决问题需要哪些分类 然后对这些分类进行单
  • 解决ImportError: No module named zlib问题

    今天在创建django工程时 报了这个错 其实前几天也遇见过当时是在装一个setuptools时 报了这个错误zlib not available按照网上的方法 装好之后重新编译自己的Python 结果没有反应 还是报错 zlib模块是用来
  • java elasticsearch_Java操作ElasticSearch

    java客户端连接到ElasticSearch服务器 创建maven工程 添加坐标 最好跟服务器elasticsearch一致 org elasticsearch client transport 6 2 4 net sf json lib
  • type和interface的区别

    type和interface都可以用来表示接口 但实际用的时候会有写差异 1 type和interface的相同点 都是用来定义对象或函数的形状 interface example name string age number interf