当前位置: 首页 > article >正文

Typescript中 interface 和 type 的区别是什么?

在 TypeScript 中,interfacetype 都用于定义类型,但它们有一些区别。

1. 语法差异:

  • interface 关键字用于声明接口,使用 interface 可以定义对象的形状、函数的签名等。

  • type 关键字用于声明类型别名,可以给一个类型起一个新的名字。

2. 合并能力:

  • interface 具有合并能力,即同名的接口会自动合并为一个接口,合并后的接口会继承所有同名接口的成员。

  • type 不具有合并能力,同名的类型别名会报错。

3. 实现能力:

  • interface 可以被类实现(使用 implements),用于类与接口的约束关系。

  • type 不能被类实现,它只是给类型起别名,无法用于类与类型的约束关系。

4. 扩展能力:

  • interface 可以通过 extends 关键字扩展其他接口或类,实现接口的继承。

  • type 可以使用交叉类型(&)或联合类型(|)组合多个类型来创建新的类型。


http://www.kler.cn/news/150148.html

相关文章:

  • 后端Java日常实习生面试(七牛云2023年11月14日)
  • php通过curl方式发送接受xml数据
  • HarmonyOS入门开发(三) 持久化存储Preferences
  • day65 django回顾3
  • WordPress 粘贴图片上传插件
  • pytorch 多卡并行训练
  • 【Qt之QFileInfo】使用
  • Redis 事件轮询
  • HarmonyOS(七)——@BuilderParam装饰器
  • Flink-时间窗口
  • 解决electron-builder打包不成功只能输出tgz文件的问题
  • 函数的极值与最值
  • 【C 语言经典100例】C 练习实例1
  • NMap扫描进阶
  • [黑马程序员SpringBoot2]——开发实用篇3
  • 手机一键“触达”!VR全景助力政务服务大厅数字升级
  • Linux常用命令——rm 命令
  • c语言编程题经典100例——(36~40例)
  • Es6笔记之箭头函数与解构赋值
  • Day60.算法训练
  • 基于C#实现Prim算法
  • 不同路径 II(力扣LeetCode)动态规划
  • 荒野大镖客提示找不到emp.dll文件的5个修复方法-快速修复dll教程
  • ZYNQ_project:lcd_pic_400x400
  • springboot 返回problem+json
  • 【云备份】第三方库的认识与使用
  • go模版引擎的使用~~
  • 【c语言】二维数组的对角线对称交换
  • LeetCode 60. 排列序列【数学,逆康托展开】困难
  • ⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]