TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
搜索到 1 篇与 的结果
2025-07-23

TypeScript接口与类型别名:为何接口会报错?

TypeScript接口与类型别名:为何接口会报错?
一、从报错案例看接口的"脾气"最近在重构项目时遇到一个典型问题:typescript interface User { name: string; }// 尝试扩展接口 interface User { age: number; // ✅ 正常合并 }type Account = { id: string; }// 尝试扩展类型别名 type Account = { balance: number; // ❌ 报错:重复标识符 }这个报错揭示了接口(interface)和类型别名(type)的第一个关键差异:声明合并是接口的专属特性。TypeScript编译器会将同名接口自动合并,而类型别名则禁止重复声明。二、本质差异的深层剖析1. 设计哲学的差异 接口:体现"扩展开放"原则,适合描述对象的形状(Shape),天然支持继承和扩展 类型别名:本质是类型表达式别名,更适合组合复杂类型(如联合类型、元组等) 2. 扩展方式对比typescript // 接口扩展 interface Admin extends User { privileges: string[...
2025年07月23日
3 阅读
0 评论