TypeScrip-03(接口和对象类型)

news/2024/11/25 14:55:57/

目录

interface 重名 、重合

任意属性 [propName: string]

可选 ? 操作符、 readonly 只读

interface 接口继承

interface 定义函数类型


在 ts 中,定义对象的方式要用关键字 interface(接口),我的理解是使用interface来定义一种约束,让数据的结构满足约束的格式。

定义方式如下:

//必须与接口保持一致, 使用接口约束的时候不能多一个属性也不能少一个属性
interface Person {b:string,a:string
}
// 这样写是会报错的 因为我们在person定义了a,b但是对象里面缺少b属性 
const person:Person  = {a:"ls"
}

interface 重名 、重合

// 不能多属性、不能少属性 
interface Axxsxs {name: string,age: number
}
// 重名重合 
interface Axxsxs {sex: number
}
// 正确定义方式 
let a: Axxsxs = {name: 'lx',age: 18,sex: 2
}

任意属性 [propName: string]

interface 任意 key

需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集

// 只有 name、age 需要校验
interface Axxsxs {name: string,age: number,// 索引签名[propName: string]: any
}/*1、例子中看到接口中并没有定义a,b但是并没有报错2、因为我们定义了[propName: string]: any;3、允许添加新的任意属性
*/let a: Axxsxs = {name: 'lx',age: 18,a: 1,b: 2
}

可选 ? 操作符、 readonly 只读

interface Axxsxs {name: string,age?: number, // 可选 readonly cd: () =>boolean // 设置只读
}let a: Axxsxs = {name: 'lx',age: 18,  // 可以写可以不写 cd: () => {return false}
}

interface 接口继承

interface Axxsxs extends B {name: string,age?: number, // 可选 readonly cd: () => boolean // 设置只读
}
interface B {id: string
}
let a: Axxsxs = {id: '1233',name: 'lx',age: 18,  // 可以写可以不写 cd: () => {return false}
}

interface 定义函数类型

interface Fn {// 参数name为string、返回值是 number类型的数组 (name:string): number[]
}
const fn:Fn = function(name:string) {return [1]
}


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

相关文章

读书笔记:《德鲁克管理思想精要》- 6

《德鲁克管理思想精要》 美 . 彼复 . 德鲁克 著 李维安 王世权 刘金岩 译 《The Essential Drucker》The Best of Sixty Years of Peter Druckers Essential Writings on Management - 18,19,20,21,22 - 发挥沟通作用 …

想了解会计软件吗?来看看Zoho Books的功能和特点

Zoho Books 是一款功能强大的在线会计软件,为企业提供多合一解决方案,该解决方案可定制、可扩展,并使始终保持合规。 轻松生成电子发票 在Zoho Books中,您可以通过包含电子发票架构中提到的所有必填字段来创建电子发票格式的发票。…

STM32中重映射的功能和机理

在STM32系列微控制器中,GPIO端口具有多种功能,如输入、输出、模拟输入/输出等。为了提高GPIO的灵活性和可用性,STM32系列微控制器提供了重映射(Remap)功能。 重映射功能允许将一个GPIO端口重新映射到另一个GPIO端口上…

SSR渲染-初识Nuxt-01

SSR服务端渲染 SSR服务端渲染:在后端将html页面处理好,前端直接展示(可以解决为后端给你传了一个html脚本,全段渲染) 为什么要有SSR服务端渲染? 可以解决单页面首屏加载慢的问题,同时有利于用…

大学物理(上)-期末知识点结合习题复习(5)——刚体力学-转动惯量、力矩、线密度 面密度 体密度、平行轴定理和垂直轴定理、角动量定理和角动量守恒定律

目录 刚体的定轴转动 题1 题目描述 题解 题2 题解 题3 题目描述 题解 题4 题目描述 题解 题5 题目描述 题解 角动量定理和角动量守恒定律 刚体的定轴转动 1.转动动能 由,得 表示质量 表示质量分布点 2.转动惯量 为刚体对给定轴的转动惯量&…

显卡维修之显存位置如何确认

众所周知,一般显卡花屏通常是由显存问题引起,也有可能是核心脱焊。这里主要说的是N卡,即NVIDIA显卡。 通过mats工具可以知道是哪一个位置上的显存出问题,如下图B0报错 知道显存出问题,那么就需要换显存,下…

实时监测GPU的显存和显存清理小功能学习

目录 一、pynvml库的简单使用 二、显存清理 在跑神经网络训练或者推理的时候,有的时候很有必要实时监测一下显存的状态。NVIDIA显卡在终端管理界面,使用命令:watch -n 3 nvidia-smi可以指定每隔几秒中来显示一下显卡信息。当然NVIDIA也是开…

如何检测显卡类型和OpenGL版本?

摘要 OpenGL是一个行业标准的3D图像API。运行 CityEngine 需要 OpenGL 2.x 或更高版本。OpenGL 驱动通常与显卡驱动和支持的软件(例如:DirectX)一同安装。 过程 1.检测显卡类型(Windows): 1)…