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 加持,快人一步