在 TypeScript 中 interface 和 type 的区别

news/2024/11/20 13:33:56/

在 TypeScript 中,interface 和 type 都用于定义自定义类型,但它们有一些区别:

  1. 语法风格:interface 使用关键字 interface 开头,而 type 使用关键字 type 开头。例如:

    interface Person {name: string;age: number;
    }type Car = {brand: string;year: number;
    };
    
  2. 扩展和实现:interface 可以通过继承或合并来扩展其他接口,并支持类实现。而 type 在定义类型时不支持继承和合并。

    interface Animal {name: string;eat(): void;
    }interface Dog extends Animal { // 接口继承bark(): void;
    }class Labrador implements Dog { // 类实现接口name: string = 'Labrador';eat() {console.log('Labrador is eating');}bark() {console.log('Labrador is barking');}
    }
    
  3. 合并声明:当定义具有相同名称的 interface 时,它们会自动合并到一个类型声明中。而 type 定义具有相同名称的类型时,会报错。例如:

    interface Person {name: string;
    }interface Person { // 自动合并到一个类型声明age: number;
    }const person: Person = {name: 'John',age: 25,
    };
    
    type Person = {name: string;
    };type Person = { // 报错,无法重复定义类型 "Person"age: number;
    };const person: Person = {name: 'John',age: 25,
    };
    
  4. 表示形式:type 具有更强大的功能,能够使用联合类型、交叉类型、映射类型、条件类型等高级类型特性,以及使用类型别名进行声明。而 interface 的功能相对较为简单,不支持这些高级类型特性。例如:

    type ID = string | number; // 使用类型别名定义联合类型type Person = {name: string;age: number;
    };type Student = Person & { grade: number }; // 使用交叉类型type Config = {[key: string]: boolean;
    }; // 使用映射类型
    

综上所述,interface 主要用于定义对象的形状,并且支持继承、合并和类的实现,而 type 主要用于创建类型别名,具有更多的高级类型特性,并且不支持继承和合并。根据不同的需求和场景,选择合适的工具来定义类型。一般来说,当需要描述一个对象的结构时,优先使用 interface;而当需要创建复杂的、可复用的类型时,可以使用 type 和高级类型特性。


http://www.ppmy.cn/news/834972.html

相关文章

4k对齐 diskgenius修复分区表 ubuntu安装

最近被500G 日历硬盘折腾了很久,今天终于解决问题。 问题起源: 前两天打算从fedora转向ubuntu。原来的fedora装在硬盘的最后一个分区(G盘,为一主分区),可万万没想到,当我删除该分区的逻辑驱动器…

磁盘分区4K未对齐的解决方案

磁盘分区4K未对齐的解决方案 后续在遇到用户反馈电脑运行慢,不区分机型,先使用 AS SSD benchmark工具(请查看附件)检测分区对齐是否正常,华为办公区访问服务器\\szxems12-fs\drivers_for_IT下载工具。 如果显示为10…

怎么看ssd有没有4k对齐?3分钟包教包会!

固态硬盘成为许多电脑配置不够的标配,但是许多小伙伴告诉快启动小编:自己的电脑装上了固态硬盘之后并没有太大的变化。其实大家在使用固态硬盘是有盲区的,首先我们需要将其设置为4k对齐才能发挥到最佳性能,所以大家在分区时一定要…

4K 对齐与固态硬盘检测工具

0. 硬盘扇区 当前电脑传统机械硬盘的每个扇区一般大小为 512 字节(512B);当使用某一文件系统将硬盘格式化时,文件系统会将硬盘扇区、磁道与柱面统计整理并定义一个簇为多少扇区方便快速存储。 现时 windows 中常见使用的 NTFS 文…

[Windows] 4k对齐(无损对齐) [ 技术分享 ]

4K对齐介绍: 点击查看 4K对齐检查: 点击查看 4K对齐操作: 一是“无损对齐”:无损就是不需要重新格式化磁盘、重新分区,免去重装系统、备份的麻烦。 二是“有损对齐”:有损就是需要重新分区、划分磁盘、备份…

Keil代码一键对齐工具

1. 下载AStyle工具2.Keil中配置3.效果展示4.扩展参数4.1 只格式化当前文件4.2 格式化整个工程4.3 参数说明 1. 下载AStyle工具 下载链接。 下载后将其放在合适的位置,不用安装。我放在了keil安装目录下。 2.Keil中配置 打开tools下的Customize Tools Menu。添加新…

linux ssd 4k对齐工具下载,4k对齐检测工具(as ssd benchmark)

AS SSD Benchmark是一个SSD(固态硬盘)的传输速度测试工具,AS SSD Benchmark软件操作简单,我们下载解压后直接打开就可以使用。AS SSD Benchmark软件功能也很强大,可以帮助大家测试固态硬盘持续读、写等的性能,软件体积小巧&#x…

金九银十面试题之《设计模式》

🐮🐮🐮 辛苦牛,掌握主流技术栈,包括前端后端,已经7年时间,曾在税务机关从事开发工作,目前在国企任职。希望通过自己的不断分享,可以帮助各位想或者已经走在这条路上的朋友…