TS-类型别名和接口的区别

TypeScript中的类型别名(Type Alias)接口(Interface) 都是用来自定义类型的工具,但他们在语法和使用场景上有一些区别。

  1. 扩展和合并

    • 类型别名:不能直接扩展和合并,但可以通过交叉类型来实现类似的效果。
    type Point3D = Point & {z: number}
    
    • 接口:可以扩展其他接口。
    interface Point3D extends Point {z: number;
    }
    interface Point {x: numbery: number
    }
    
  2. 使用场景

    • 类型别名:适用于定义联合类型、交叉类型、元组等复杂类型。
    type StringOrNumber = string | number
    type TupleType = [string, number]
    
    • 接口:适用于定义对象形状,特别是在面向对象编程中定义类和对象的接口。
    interface Person {name: stringage: number
    }
    
  3. 实现和继承

    • 类型别名:不能被实现
    • 接口:可以被类实现
    class MyPoint implements Point {x: numbery: number
    }
    
  4. 字面量类型

    • 类型别名:可以定义字面量类型
    type Direction = 'N' | 'S' | 'E' | 'W'
    
    • 接口:不能定义字面量类型
  5. 工具类型

    • 类型别名:可以定义工具类型
    type Partial<T> = {[P in keyof T]?: T[P];
    };
    
    • 接口:不能定义工具类型

总结

  • 类型别名:适用于定义复杂类型、联合类型、交叉类型、元组等,但不能被类实现。
  • 接口: 适用于定义对象的形状,特别是在面向对象编程中定义类和对象的接口,可以被类实现,可以扩展和合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年了还在学pytestday1

1、按照博主的说法&#xff0c;提出疑问&#xff1a;应该在电脑本地终端安装还是在pythoncharm终端安装&#xff1f; ------在pythoncharm终端安装就行 避免老是忘记&#xff0c;还是记下来比较好。 2、在公司安装不成功&#xff0c;换豆瓣源也不行&#xff0c;连接手机热点尝…

LangChain 语言 —— LCEL

文章目录 一、概述二、快速开始1、invoke 一个 runable2、batch 一个 runable3、stream 一个 runable4、将runables组合起来5、并行调用可运行文件6、将任何function转换为可runable7、合并输入和输出字典8、将输入字典包含在输出字典中9、添加默认调用参数 一、概述 LangChain…

华为机考真题 -- 靠谱的车

题目描述: 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字 4,所以改装了计费表,任何数字位置遇到数字 4 就直接跳过,其余功能都正常。 比如: 1. 23 再多一块钱就变为 25; 2. 39 再多一块钱…

大象资讯 | IvorySQL 3.3 发版

IvorySQL 3.3 于 2024.07.11 日发版&#xff0c;该版本基于 PostgreSQL 16.3&#xff0c;修复若干问题。 IvorySQL 是一款以 PostgreSQL 为基础进行开发&#xff0c;并且兼容 Oracle 的开源数据库。该项目是在 Apache 2.0 许可证下发布的&#xff0c;社区鼓励且欢迎所有类型的贡…

Linux--安装VMware步骤

安装VMware VMware Desktop Hypervisors for Windows, Linux, and Mac 复制链接打开浏览器下载即可 从官网下载软件&#xff0c;完成后为确保后续正常使用&#xff0c;需要检查虚拟网卡是否安装完成 检查虚拟网卡的安装步骤 Windows--设置--高级设置--网络适配器--看是否有显…

STM32杂交版(HAL库、音乐盒、闹钟、点阵屏、温湿度)

一、设计描述 本设计精心构建了一个以STM32MP157A高性能单片机为核心控制单元的综合性嵌入式系统。该系统巧妙融合了蜂鸣器、数码管显示器、点阵屏、温湿度传感器、LED指示灯以及按键等多种外设模块&#xff0c;形成了一个功能丰富、操作便捷的杂交版智能设备。通过串口…

vue2学习笔记-官网使用指南和搭建开发环境

官网使用指南 官网地址&#xff1a;介绍 — Vue.js 1、学习 1.1 教程和API 最重要的两个板块。API是VUE的字典&#xff0c;需要时来查阅。 1.2、风格指南 如何写出风格优雅的VUE代码。规则分为四类&#xff1a;必要的&#xff0c;强烈推荐、推荐、谨慎使用。 1.3、示例 …

初始网络知识

前言&#x1f440;~ 上一章我们介绍了使用java代码操作文件&#xff0c;今天我们来聊聊网络的一些基础知识点&#xff0c;以便后续更深入的了解网络 网络 局域网&#xff08;LAN&#xff09; 广域网&#xff08;WAN&#xff09; 路由器 交换机 网络通信基础 IP地址 端…

PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0

符合条件的 PCI SSC 利益相关者在 30 天的意见征询 (RFC) 期间审查 PCI PTS 硬件安全模块 (HSM) 模块化安全要求 v5.0 草案并提供反馈。 PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0图 从 7 月 8 日到 8 月 8 日&#xff0c;邀请符合条件的 PCI SSC 利益相关者在 30 天的意见…

【linux】服务器创建RAID1(软件配置RAID1)

【linux】服务器创建RAID1(软件配置RAID1) 文章目录 【linux】服务器创建RAID1(软件配置RAID1)一、配置介绍raid介绍raid类型RAID 0:RAID 1:RAID 5:RAID 6:二、配置RAID硬件RAID:软件RAID:三、软件配置RAID1(以linux为例)1.先进入管理员模式2.安装mdadm工具3.创建raid1数…

SSH服务器CBC漏洞(CVE-2008-5161)

漏洞简介 OpenSSH 是一种开放源代码的SSH协议的实现,初始版本用于OpenBSD平台,现在已经被移植到多种Unix/Linux类操作系统下,Linux环境中一般采用AES这种算法加密,AES有五种加密模式(CBC、ECB、CTR、OCF、CFB),系统默认会选择CBC的加密模式。 CBC模式是一种常用的对称…

存取款系统接口设计

题目描述&#xff1a; 设计一个存取款接口&#xff0c;入参是账户数组balances 与存取款请求体数组requests 对于取款要求判断&#xff1a; 当前余额不足&#xff0c;返回余额不足帐号 之前的取款时间在24之前的&#xff0c;在24小时之后返回上次取款额度的百分之2并向下取整。…

Hive期末测试题(头歌)

第1关&#xff1a;计算“Bad Boys (1995)”这部电影的评分次数 -- 使用mydb数据库 USE mydb;-- 计算“Bad Boys (1995)”这部电影的评分次数 SELECT m.movieid, m.moviename, COUNT(r.movieid) AS rating_count FROM t_movies m JOIN t_ratings r ON m.movieid r.movieid WHE…

【欧几里得算法】C++求解最大公因子:求解两个正整数的最大公因子

1. 算法描述&#xff1a; 【欧几里得算法】求解两个正整数m&#xff0c;n的最大公因子 2. 算法求解步骤&#xff1a; E1&#xff08;求两个整数的余数&#xff09;&#xff1a;求两个正整数的余数&#xff0c;r m % nE2&#xff08;判断余数是否为0&#xff09;&#xff1a…

遥感影像图像识别

遥感影像图像识别 基于遥感影像的道路提取论文、开源代码和数据集汇总

C语言 结构体和共用体——结构体所占内存的字节数

目录 结构体所占内存的字节数 结构体所占内存的字节数

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

使用 Unity OpenXR 实现Gaze眼部追踪 在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。 Unity …

Linux文件:EXT2文件系统工作原理 软硬链接

Linux文件&#xff1a;文件系统究竟是什么&#xff1f;如何管理文件&#xff1f; 前言一、磁盘结构、存储策略1.1 磁盘存储结构1.2 磁盘存储策略1.3 磁盘的逻辑存储结构 二、如何管理磁盘文件三、如何管理组3.1 每个组保存的数据种类3.2 如何管理数据1、节点表&#xff08;inod…

科普文:Shell编程三剑客:grep+sed+awk

shell三剑客是grep、sed和awk三个工具的简称,因功能强大&#xff0c;使用方便且使用频率高&#xff0c;因此被戏称为三剑客&#xff0c;熟练使用这三个工具可以极大地提升运维效率。 三剑客的特点: 命令 特点 使用场景 grep 擅长查找过滤 快速查找过滤 sed 擅长取行和替…

智慧城市可视化页面怎么做?免费可视化工具可以帮你

智慧城市是一个综合性的概念&#xff0c;广泛应用于各个领域&#xff0c;如基础设施建设、信息化应用、产业经济发展、市民生活品质等。 可视化页面的制作也是一个综合性的过程&#xff0c;需要确定展示内容、数据收集与处理、设计可视化元素等多个环节紧密配合。 1. 明确展示…