TypeScript 中的 interface

在 TypeScript 中,interface 是一种定义对象结构或“形状”(shape)的类型。它可以指定一个对象必须具有的属性、方法以及它们的数据类型。通过使用 interface,你可以确保对象实例遵循特定的模式或契约。

以下是 interface 的一些关键特点:

1、属性:

必须的属性:如果没有在属性后添加问号(?),则该属性是必须存在的。
可选属性:在属性后添加问号(?),表示该属性是可选的。
只读属性:可以通过在属性前添加 readonly 关键字来创建只读属性。

2、方法:

interface 可以包含方法签名,但不会包含方法的实现。

3、索引签名:

允许你指定对象可以使用哪些类型的键值,并且可以指定这些键对应的值的类型。

4、继承:

使用 extends 关键字,interface 可以从其他 interface 继承属性和方法。

5、混合类型:

除了属性和方法,interface 还可以包含构造函数、索引签名和静态属性。

6、多重继承:

interface 可以同时继承多个其他 interface。

7、类型兼容性:

如果一个对象类型包含 interface 所描述的所有必要属性,则认为它是与该 interface 兼容的。

例如,定义一个 Person 接口:

interface Person {name: string;age?: number; // 可选属性readonly id: number; // 只读属性greet(): string; // 方法签名
}const person: Person = {name: "Alice",id: 1,greet() {return `Hello, my name is ${this.name}`;}
};

在这个例子中,person 对象遵循 Person 接口所定义的结构,包括一个必需的 name 属性,一个可选的 age 属性,一个只读的 id 属性,以及一个 greet 方法。如果尝试给 person 添加一个额外的属性,或者修改其只读属性,TypeScript 编译器会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第12天|sea_fish

打开第12天,前几天打卡完成了入门的学习,后续有时间对入门的内容,再次整理一下。本次学习的内容为基于MindSpore的GPT2文本摘要。记录学习的过程。记录实验系统中的步骤,对一些内容进行记录和归纳。 数据集加载与处理 数据集加载…

归并排序详解(递归与非递归)

归并排序是建立在归并操作上的一种有效算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列间断有序。若将两个有序表合并成一个有序表,成为二路归并。 一…

【6】图像分类部署

【6】图像分类部署 文章目录 前言一、将pytorch模型转为ONNX二、本地终端部署2.1. ONNX Runtime部署2.2. pytorch模型部署(补充) 三、使用flask的web网页部署四、微信小程序部署五、使用pyqt界面化部署总结 前言 包括将训练好的模型部署在本地终端、web…

【Android】自定义换肤框架01之皮肤包制作

前言 目前为止,市面上主流的安卓换肤方案,其实原理都是差不多的 虽然大多都号称一行代码集成,但其实想要做到完全适配,并不简单 这个系列,就是让大家从零开始,完全掌握这方面知识,这样才能对…

关于vue监听数组

Vue.js 监听数组:深入理解与实践 在 Vue.js 开发中,数据的响应式更新是其核心特性之一。当我们处理数组时,如何高效地监听数组的变化,及时更新视图,是每个开发者都需要掌握的技能。本文将深入探讨 Vue.js 监听数组的机…

RabbitMq - Java客户端基础【简单案例 +Work模型】

目录 1、前置知识 1.1、AMQP怎么理解 1.2、Spring AMQP是什么 1.3、为什么要了解Spring-AMQP? 2、使用Spring-AMQP实现一个发消息案例 3、Work模型 问题: 优化: 小结:Work模型的使用: 1、前置知识 1.1、AMQP怎…

Automatic TSPITR in 10G RMAN 19C DBV expdp “TEST” RAC中 thread

TSPITR 注意事项: 19C DBV expdp 不用exp imp “TEST” 一定要“” 起来,否则说找不到test tablespace. RAC中 thread 要指定对,否则过度恢复。 SEQUENCE# 是drop 时的,不是创建时的。 tablespace 默认是offline的&#xf…

【WPF】桌面程序开发之xaml页面基础布局方式详解

使用Visual Studio开发工具,我们可以编写在Windows系统上运行的桌面应用程序。其中,WPF(Windows Presentation Foundation)项目是一种常见的选择。然而,对于初学者来说,WPF项目中xaml页面的布局设计可能是一…

EtherCAT转Profinet网关配置说明第三讲:博图配置

EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)是实现EtherCAT协议和Profinet协议之间无缝通讯的重要设备。使EtherCAT协议和Profinet协议能够相互转换,进行工控自动化里的互连和传送数据。 EtherCAT作为一种高性能实时以太网通信协议&…

11、广告-数据统计原理

数据统计原理 数据统计是程序化广告中非常重要的一环,通过对广告数据和用户行为数据的统计分析,广告主可以评估广告效果、优化投放策略,提升用户转化率和广告收益。以下是关于数据统计原理的详细介绍: 一、Web统计逻辑 浏览器请…

【讲解下iOS语言基础】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

1431. 拥有最多糖果的孩子

1431. 拥有最多糖果的孩子 题目链接&#xff1a;1431. 拥有最多糖果的孩子 代码如下&#xff1a; class Solution { public:vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {vector<bool> res(candies.size(),false);int max…

2024中国深圳国际新能源暨清洁能源产业展览会(高交会)

105个国家、5000家参展商、40万㎡展览规模、50万买家客户参观&#xff0c;高交会清洁能源展11月中旬将盛大启幕&#xff1b; ——在科技日新月异、产业融合加速的时代浪潮中&#xff0c;一场备受瞩目的科技盛会即将拉开帷幕&#xff0c;「第二十六届中国国际储能技术与设备展览…

【Linux详解】进程等待 | 非阻塞轮询

引入&#xff1a; 为什么&#xff1f;是什么&#xff1f;怎么办 是什么&#xff1f; 进程等待是指父进程暂停自己的执行&#xff0c;直到某个特定的子进程结束或发生某些特定的事件。 为什么&#xff1f; 僵尸进程刀枪不入&#xff0c;不可被杀死&#xff0c;存在内存泄露…

Linux_实现简易日志系统

目录 1、认识可变参数 2、解析可变参数 3、打印可变参数 3.1 va_list 3.2 va_start 3.3 va_arg 3.4 va_end 3.5 小结 4、实现日志 4.1 日志左半部分 4.2 日志右半部分 4.3 日志的存档归类 结语 前言&#xff1a; 在Linux下实现一个日志系统&#xff0c;该日…

ffmpeg图片视频编辑器工具的安装与使用

title: ffmpeg图片视频编辑器工具的安装与使用 tags: [ffmpeg, 图片, 音频, 视频, 工具, 流媒体] categories: [工具, ffmpeg] FFmpeg是一个开源的命令行工具&#xff0c;广泛用于处理视频和音频文件&#xff0c;包括转换格式、剪辑、混流、解码、编码等。以下是一些基本的FFmp…

Gunicorn配置指南:掌握最大并发连接数设置

摘要 Gunicorn 是一个 Python WSGI HTTP 服务器&#xff0c;广泛用于生产环境中部署 Python web 应用。合理配置 Gunicorn 的最大并发连接数对于优化服务器性能和资源利用至关重要。本文将详细介绍如何在 Gunicorn 中配置最大并发连接数&#xff0c;并探讨相关的配置选项和最佳…

补充:特征缩放技术(归一化与标准化)与学习率的选取和特征转换符合高斯分布

文章目录 前言一、特征缩放技术1. 标准化(Standardization)2. 归一化(Normalization)3 sklearn高级接口二、学习率的选取三、将特征转换为近似符合高斯分布1. 取对数变换(Log Transformation)原理为什么有效?2. 平方根变换(Square Root Transformation)原理为什么有效…

java项目总结6

目录 1.双列集合 2.map的三种遍历方式&#xff1a; 1.键找值 2.键值对 3.lambda遍历map 3.HashMap 例子&#xff1a;统计字符出现次数 4.LinkedHashMap 5.TreeMap 6.可变参数 7.Collections: 1.双列集合 双列集合特点&#xff1a; 定义Map<String&#xff0c;St…

Linux中的管道符‘|‘以及SQL(DQL,DCL)

ls 指令 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a; 对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#xff0c;将列出文件名以及其他信息。 常用选项&#xff1a; -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -…