ts中的type 和 interface 区别
- type 可以用来给一个类型起个新名字,当命名基本类型或联合类型等非对象类型时非常有用, 而接口不行
type MyNumber = number;
type StringOrNumber = string | number;
type Text = string | string[];
2 类型别名通过 &(交叉运算符)来扩展,而接口通过 extends 的方式来扩展。都可以进行扩展
a 类型别名
type Animal = {
name: string
}
type Bear = Animal & {
honey: boolean
}
b 接口扩展
interface Animal {
name: string
}
interface Bear extends Animal {
honey: boolean
}
3 同名接口会自动合并,而类型别名不会
a 同名接口
interface User {
name: string;
}
interface User {
id: number;
}
let user: User = { id: 666, name: "阿宝哥" };
b 类型别名
type User = {
name: string;
};
// 标识符“User”重复。ts(2300)
type User = { //Error
id: number;
};
参考文献: https://blog.csdn.net/Jadon_z/article/details/134282333
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!