TypeScript-interface接口类型

interface接口类型

在TS中使用interface接口来描述对象数据的类型,常用于给对象的属性和方法添加类型约束

⚠️ 一旦注解接口类型之后对象的属性和方法类型都需要满足要求,属性不能多也不能少

interface Person {name: stringage: number
}const p: Person = {name: 'lily',age: 20
}

应用场景:

  • 前端向后端发送数据:收集表单对象数据时的类型校验

  • 前端使用后端数据:渲染后端对象数组列表时的智能提示

// 表单数据收集场景
interface LoginForm {username: stringpassword: string
}let formData: LoginForm = {username: 'hanna'password: '123456'
}
// 渲染后端列表场景
interface Goods {id: stringprice: number
}let list:Goods[] = [{id:'01',price: 100}
]list.forEach((item) => console.log(item.price))

接口的可选设置

通过对属性进行可选标注,赋值的时候该属性可以缺失,如果有值必须保证类型满足要求

interface Datas {type: stringsize?: string
}
// 不传
let data: Datas = {type:'sucess'
}// 传值必须类型匹配
let data: Datas = {type:'sucess',size:'small'
}

接口的继承

使用 extends 实现接口继承,实现类型复用

// 原价商品类型
interface GoodsType {id: stringprice: number
}
// 打折商品类型
interface DisGoodsType {id: stringprice: numberdisPrice: number
}// 使用extends
interface DisGoodsType extends GoodsType {disPrice: number
}

Demo:

{code:200,msg:'success',data: {title:'文章标题',content:'文章内容'}
}
interface Data {title: stringcontent: string
}interface ResData {code: numbermsg: stringdata: Data
}let res: ResData = {code: 200,msg:'success',data:{title:'标题',content:'内容'}
}

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

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

相关文章

揭秘APP广告变现的高效秘诀:如何让你的APP更赚钱?

在数字化时代,APP已成为人们获取信息、娱乐休闲的重要平台。对于许多内容创作者来说,如何通过APP实现盈利,是一个亟待解决的问题。而APP广告变现项目,正是其中一种备受关注的盈利模式。那么,如何有效地利用APP广告变现…

分数裂项方法及技巧

裂差 知识点 1 1 1 b − a a b 1 a − 1 b \frac{b-a}{ab} \frac{1}{a} - \frac{1}{b} abb−a​a1​−b1​ 证明: b − a a b b a b − a a b 1 a − 1 b \begin{align*} \\ &\frac{b-a}{ab} \\ &\frac{b}{ab} - \frac{a}{ab} \\ &\frac{1}{a}…

Flutter 中的 RawGestureDetector 小部件:全面指南

Flutter 中的 RawGestureDetector 小部件:全面指南 在Flutter中,处理用户手势是构建交互式应用的关键部分。RawGestureDetector是一个强大的小部件,它允许开发者识别和响应各种手势,包括但不限于点击、滑动、缩放等。本文将为您提…

web安全渗透测试十大常规项(二):web渗透测试之XSS跨站脚本攻击

渗透测试之XSS跨站脚本攻击 XSS跨站脚本攻击 XSS跨站脚本攻击

机器学习之快速森林分位数回归(Fast Forest Quantile Regression)

快速森林分位数回归(Fast Forest Quantile Regression)是一种用于回归任务的机器学习方法,旨在预测目标变量的特定分位数值。与传统回归模型不同,分位数回归能够提供目标变量的不同分布信息,而不仅仅是均值预测。这在需要估计不确定性范围或分布特征的应用中非常有用。 1…

python数据分析:爬取某东商城商品评论数据并做词云展示(含完整源码及详细注解)

python数据分析,爬取某东商城商品评论数据并做词云展示。 一、明确爬取的网页及结构 找到要爬取的网页地址,发现有一个获取json格式评论数据的接口: url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=217…

基于图鸟UI的圈子商圈:一个全栈前端模板的探索与应用

摘要: 本文介绍了一个基于图鸟UI的纯前端模板——圈子商圈,它支持微信小程序、APP和H5等多平台开发。该模板不仅包含丰富的UI组件和页面模板,还提供了详尽的使用文档,旨在帮助开发者快速构建出酷炫且功能齐全的前端应用。本文将从…

MySQL 8窗口函数详解:高效数据处理的必备技能

欢迎来到我的博客,代码的世界里,每一行都是一个故事 MySQL 8窗口函数详解:高效数据处理的必备技能 前言窗口函数概述窗口函数的基本语法常用窗口函数类型窗口帧的定义与使用性能优化与注意事项 前言 你是否曾经遇到过需要对数据进行复杂统计…

windows Oracle 11g服务器端和客户端安装 SQLark连接ORACLE

1 从ORACLE官网下载数据库安装包 https://edelivery.oracle.com/osdc/faces/SoftwareDelivery 2:安装数据库 注意:在加载组件的这一步,如果你的电脑里面有杀毒软件,首先把安装目录加入白名单,要不然可能会一直加载组件失败。…

使用fme把gis数据保存为gdb格式的,然后用arcgis map落图查看

1先启动fme workbench工具,然后按照图中的标注选择好两个对应文件目录或者数据库 2比如我选择的gis(空间属性数据)的来源是Oracle数据库下的某个库下的某张表 3然后选择保存为这种gdb格式的数据以及某个目录下,注意format是选择带api格式的,d…

redis服务监控:redis_exporter安装与使用

redis监控 使用redis exporter,提供redis最重要的运行指标数据收集,部署了redis exporter以后,prometheus会通过redis exporter暴露的端口拉取数据。 redis exporter下载地址: https://github.com/oliver006/redis_exporter/tag…

搞到了阿里云大佬的docker笔记,实战总结一步到位,建议收藏

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker在今天已经算是明星…

项目文章 |NC揭示真菌中A-to-I mRNA编辑机制及其调控和演化

A-to-I mRNA编辑是一种重要的基因表达调控方式,它通过将mRNA中的腺苷(A)转变为肌苷(I),从而可能改变蛋白质的编码信息。在动物中,这一过程由ADAR家族酶介导,然而在真菌中,由于缺乏ADARs的同源物,其背后的机…

C 语言实例 - 循环输出26个字母

循环输出 26 个字母。 以下例子我们用变量 letter 来存储当前要输出的字母,然后,使用 for 循环来重复 26 次输出字母,并在每个字母后面加一个空格。 循环内部使用 printf 函数来输出 letter 变量的值,%c 是 printf 的格式控制符…

Linux防火墙配置案例分析:常见网络攻击的防御

在网络攻击日益频繁的今天,Linux防火墙作为系统的第一道防线,其正确配置对于防御各种网络攻击至关重要。本文将通过几个实际案例,分析Linux防火墙的配置策略,以及如何有效防御常见的网络攻击。 一、Linux防火墙概述 Linux防火墙…

windows11下,使用工具验证下载的iso文件完整性

windows11下,要验证下载的iso文件是否正常,可以使用工具生成md5值,再与下载源提供的md5值进行比较,相同,说明下载的正常。 命令如下: certutil -hashfile iso文件名 md5 如下面的例子,生成d…

LabVIEW与PMAC直接通讯控制,需要注意哪些问题

在使用LabVIEW与PMAC(Programmable Multi-Axis Controller)直接通讯控制时,需要注意通讯协议的选择、数据格式的匹配、实时性要求以及错误处理机制的设计。实现方法包括配置通讯接口(如串口、以太网)、使用LabVIEW提供…

ubuntu18 conda环境安装

在Ubuntu 18.04上安装Conda环境,您可以按照以下步骤操作: 如果您还没有安装Conda,可以从Miniconda或者Anaconda官网下载对应的安装脚本: https://repo.anaconda.com/archive/ wget -c https://repo.anaconda.com/archive/Anaco…

Linux C内存泄漏调试指南20240527

Linux C内存泄漏调试指南 引言 在C语言编程中,内存管理是一个非常重要的课题。内存泄漏可能导致程序运行缓慢、系统崩溃甚至安全漏洞。本文将详细介绍如何在Linux环境下使用Valgrind工具调试C程序中的内存泄漏,并分享一些最佳实践,帮助您编…

如何解决IT运维不给力

运维不给力,是很多企业IT部门面临的头疼问题,其背后的原因错综复杂,可能涉及到资金投入不足、团队积极性不高、或是缺乏科学的运维管理体系。要解决这些问题,引入IT运维管理和利用先进的ITILDESK平台,可以作为破局的关…