发布时间:2026/8/21 18:43:01
【TypeScript】对象类型定义(interface 和 type) 1. 声明合并interface 能合并type 不行同名 interface 会被自动合并成一个。而type是“别名”他是一次性赋值重复声明同名 type 直接报错。// interface两次声明同名编译器自动合并interfaceUser{name:string;}interfaceUser{age:number;}// 最终 User { name: string; age: number }// type重复声明直接报错typeUser{name:string};typeUser{age:number};//报错Duplicate identifier User// type 想合并得用交叉类型 这是创建新类型不是合并typeA{name:string};typeB{age:number};typeUserMergedAB;// { name: string; age: number }interface的合并是「无中生有累加到同一个名字上」特别适合给第三方库/全局对象「渐进式扩展」如给window加属性、给某个库的类型打补丁。type用是「生成第三个新类型」A 和 B 本身不变。type 注意遇到同名但类型冲突的属性会变成never。2. 继承 被类实现interface 原生支持interface可以用extends继承别的 interface也可以用implements被 class 实现。type也能被implements但「继承」得靠交叉类型来模拟没有extends关键字。代码// interface 继承interfaceAnimal{name:string;}interfaceDogextendsAnimal{// 原生 extendsbark():void;}// interface 被 class 实现classMyDogimplementsDog{name旺财;bark(){console.log(汪);}}// type 没有 extends用 模拟继承typeAnimalT{name:string};typeDogTAnimalT{bark():void};// 等价组合但语法不是继承// type 也能被 implements这点它和 interface 一样classCatimplementsDogT{name咪咪;bark(){console.log(喵);}// 字段结构对得上即可}3. type 支持任意类型interface 只支持对象/函数签名type能给任何类型起别名——基本类型、联合、元组、字面量、函数类型都能。而interface的「左边」只能描述对象结构或函数调用签名不能当基本类型别名用。代码// type什么都能别名typeIDstring|number;// 联合typePoint[number,number];// 元组typeStatussuccess|error;// 字面量联合typeCounter(x:number)void;// 函数类型// interface只能写对象/函数签名interfaceObj{x:number;y:number;}interfaceFn{// 调用签名注意没有名字(x:number):void;}// 下面这些 interface 都做不到// interface ID string | number; // 报错// interface Point [number, number]; // 报错「type是类型表达式的别名interface是结构声明」。所以number、string | number这种不是「结构」的东西只能交给type。4. 联合 / 映射 / 条件类型type 全面支持interface 不支持高级类型体操联合、映射、条件只能用type写。interface表达不了这些它只能描述「固定的对象形状」。代码// 联合类型 —— interface 无法表达typeAorB{a:1}|{b:2};// 映射类型 —— 基于已有类型批量改造interface 做不到typePartialT{[PinkeyofT]?:T[P]};// 全部变可选typeReadonlyT{readonly[PinkeyofT]:T[P]};// 条件类型 —— 根据泛型分支产出不同类型typeIsStringTTextendsstring?yes:no;typeR1IsStringstring;// yestypeR2IsStringnumber;// no// interface 想复用 mapped/conditional 的结果只能 extends 一个 typetypeBase{id:number;name:string};interfaceUserextendsBase{// interface 可以 extends typeage:number;}这也是为什么我们在 TS 源码里看到Partial、Pick、Record、ReturnType全是type写的——它们本质是「类型层面的函数计算」而 interface 只是「形状声明」两者不在同一个抽象层级。实战怎么选对外暴露的对象结构库的 API、组件 props、DTO优先interface。声明合并 继承让它能渐进扩展。需要联合 / 元组 / 映射 / 条件类型的场景只能用type。同一个对象结构用哪个都行时团队统一一个即可。区别总结声明合并interface 能合并type 不行。同名 interface 会被自动合并成一个。而type是“别名”他是一次性赋值重复声明同名 type 直接报错。继承 被类实现interface 原生支持。interface可以用extends继承别的 interface也可以用implements被 class 实现。type也能被implements但「继承」得靠交叉类型来模拟没有extends关键字。type 支持任意类型interface 只支持对象/函数签名。type能给任何类型起别名——基本类型、联合、元组、字面量、函数类型都能。而interface的「左边」只能描述对象结构或函数调用签名不能当基本类型别名用。联合 / 映射 / 条件类型type 全面支持interface 不支持。高级类型体操联合、映射、条件只能用type写。interface表达不了这些它只能描述「固定的对象形状」。

相关新闻

2026/8/21 18:43:01

AD20使用技巧(持续更新中)

如果帮到你了,麻烦点个赞 1. AD20中不同窗口之间切换 Ctrl Tab 2. PCB镜像翻转 Ctrl F 3. PCB中器件封装镜像 选中封装,按快捷键Ctrl X 4. 选中同一面上的同一网络的导线 鼠标左击选中一小段后,按Tab键 5. 选中一段同一网络相连的…

2026/8/21 18:37:58

MiniMax H3使用免本地部署

最近 AI 视频圈里,MiniMax H3 的热度很高。尤其是 H3 开源之后,很多人第一反应都是:既然模型开源了,是不是普通人也能直接下载安装到电脑上免费生成视频?实际并没有这么简单。如果想自己部署 H3,需要下载模…

2026/8/21 20:03:05

模糊测试评估强化学习智能体:原理、实现与实战指南

1. 项目概述:当模糊测试遇上强化学习智能体 最近在跟进一些前沿的测试验证工作,发现一个挺有意思的交叉领域:用模糊测试(Fuzz Testing)来评估强化学习(Reinforcement Learning, RL)智能体。乍一…

2026/8/21 20:03:05

Windows驱动管理全攻略:从原理到实践,告别手动安装烦恼

在 Windows 系统上进行开发或日常使用,驱动问题总是如影随形。新装系统后,面对一堆未知设备需要挨个寻找驱动;显卡更新后游戏性能不升反降,想回退却找不到旧版本;重装系统前,备份驱动成了一场手动整理的噩梦…

2026/8/21 20:03:05

SMUDebugTool 新手降压指南:5 步安全完成首次 AMD Ryzen 降压

SMUDebugTool 新手降压指南:5 步安全完成首次 AMD Ryzen 降压 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: htt…

2026/8/21 20:03:05

当AI能秒写CRUD,程序员真正的竞争力还剩什么?

代码正在贬值,但软件工程的上限在提高一场正在发生的“静默革命”先抛一组数据。2026年的开发者调查曾显示, 全球范围内, 已有百分之七十八的专业开发者在运用AI编程工具工作, 在运用这类工具的开发者里, 又有百分之三十七表示, 这些工具“显著改变了他们各自的工作…

2026/8/21 19:58:05

同样是卫星通信,为什么低轨卫星搭载多波束相控阵?

各位射频从业者、卫星通信与半导体芯片领域的同行,电子专业在校学生们,以及所有对低轨卫星满怀好奇、有志入行的小伙伴们,大家好。我是鲸鹏芯海的謓泽。鲸鹏的系列内容《唠透低轨卫星相控阵芯片十件事》第二篇正式更新!上一篇为本…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…