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 @   小白张先生  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示