ts中的type 和 interface 区别

  1. 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

posted @   小白张先生  阅读(58)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示