TypeScript接口的讲解-强制约束-可选属性-任意多个属性-只读属性
接口
接口:可以描述类的一部分抽象行为, 也可以描述数据的结构形状
接口一般首字母大写,
接口中 可以定义为 强制约束 可选属性 只读属性 任意属性
# 强制约束
// 定义接口
interface Instate {
name: string;
zge: number;
}
// obj1 满足接口所描述的数据结构的类型
// 并且里面的字段是不能够少的哈。否则会报错的哟
var obj1: Instate;
// 接口数据
obj1 = {
name: "张三",
zge: 4
};
console.log(obj1);
可选属性
// 定义接口
interface Instate {
name: string;
zge?: number; //这个字段可有可无
}
// obj1 满足接口所描述的数据结构的类型
// 并且里面的字段是不能够少的哈。否则会报错的哟
var obj1: Instate;
// 接口数据
obj1 = {
name: "张三"
};
console.log(obj1);
任意属性
// 定义接口 可以有任意多个字段 方便后面动态添加属性
ps==》 属性个数不确定的时候, any 必须是任意的类型。 [propN:string]:any,
interface Instate {
name: string,
zge?: number,
[propN:string]:any,
}
// obj1 满足接口所描述的数据结构的类型
var obj1: Instate;
// 接口数据
obj1 = {
name: "张三"
};
console.log(obj1);
只读属性
// 定义接口 可以有任意多个字段 方便后面动态添加属性
interface Instate {
readonly name: string; //只读属性
zge?: number; //这个属性可以有 可以没有
[propN: string]: any; //动态添加字段哈
}
// obj1 满足接口所描述的数据结构的类型
var obj1: Instate;
// 接口数据
obj1 = {
name: "张三"
};
obj1.name = "张四"; //你修改了 所以会在这里报错的哈
obj1.zge = 10;
console.log(obj1);
使用接口声明一个这样的数据结构
interface backData{
name: string,
age: number
}
interface backResult{
code: number,
data: backData[], //数组里面的对象类型
message:string
}
let obj: backResult = {
code: 200,
data: [
{ name: '张三', age: 123 }
],
message: '操作成功'
}
还可以这样声明操作
interface backResult{
code: number,
data: { name: string, age: number}[]
message:string
}
let obj: backResult = {
code: 200,
data: [
{ name: '张三', age: 123 }
],
message: '操作成功'
}
TypeScript接口的讲解-强制约束-可选属性-任意多个属性-只读属性的更多相关文章
- typescript接口的概念 以及属性类型接口
/* 1.vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 2.第二步 任务 ...
- 从C#到TypeScript - 接口
总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...
- typescript接口(学习笔记非干货)
typescript的核心原则之一就是对所具有的shape类型检查结构性子类型化 One of the core principles of typescript is to check struct ...
- Typescript 接口(interface)
概述 typescript 的接口只会关注值的外形,实际就是类型(条件)的检查,只要满足就是被允许的. 接口描述了类的公共部分. 接口 interface Person { firstName: st ...
- 《三》大话 Typescript 接口
> 前言: 本文章为 TypeScript 系列文章. 旨在利用碎片时间快速入门 Typescript. 或重新温故 Typescript 查漏补缺.在官方 api 的基础上, 加上一些日常使用 ...
- typescript接口扩展
/* typeScript中的接口 接口扩展 */ /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批 ...
- TypeScript接口与类的使用
一.TypeScript接口 Interfaces 可以约定一个对象的结构 一个对象去实现一个接口 就必须拥有这个接口中所有的成员用interface定义接口, 并且定义接口中成员的类型 编译之后会发 ...
- TypeScript 接口继承
1.TypeScript 接口继承 和类一样,接口也可以通过关键字 extents 相互继承.接口继承,分为:单继承和多继承,即继承多个接口.另外,接口也可以继承类,它会继承类的成员,但不包括具体的实 ...
- SQL Server外键关系是强制约束,外键值也可以是空(NULL)
在SQL Server中,实际上外键值可不可以为空(NULL),和外键关系是不是强制约束无关. 我们先在SQL Server数据库中建立两张表People和Car,一个People可以有多个Car,所 ...
- Vue框架:6、Vue组件间通信,动态组件,插槽,计算属性,监听属性
目录 前端开发之Vue框架 一.Vue组件间通信 1.组件间通讯父传子 2.组件间通讯子传父 3.ref属性 二.动态组件 1.不使用动态组件 2.使用动态组件 3.keep-alive保持组件不销毁 ...
随机推荐
- linux 账号管理 添加用户与修改用户权限与密码
添加用户 useradd zhoulujun 修改用户密码 passwd zhoulujun 修改用户组 usermod -g root zhoulujun 记住这个几个就够了--
- 苹果商店上架流程_App上架苹果流程及注意事项
苹果商店上架流程_App上架苹果流程及注意事项 APP上架是:APP应用从提交审核到上架整个过程.目的是让应用展示在APP Store上获取流量及用户 一.IOS上架整个流程 1.申请开发者账号 2. ...
- Python FastAPI 获取 Neo4j 数据
前提条件 先往Neo4j 里,准备数据 参考:https://www.cnblogs.com/vipsoft/p/17631347.html#创建传承人 搭建 FastAPI 项目:https://w ...
- Sublime Text Python 代码提示插件 Anaconda
1.Ctrl+Shift+P -> install package 安装 Anaconda 查看Python 安装路径 { "python_interpreter":&quo ...
- 引用 AspNetCoreRateLimit => StatusCode cannot be set because the response has already started.
app.UseIpRateLimiting(); #需要放在前面,否则抓去不准,还有可能会出现下列错误 本次出现这个错误,是因为 .Net Core 跨域 里面的这行:httpContext.Res ...
- 使用port-forward本地访问k8s集群内redis
前言 通过kubectl port-forward端口转发,在本地机器上访问k8s集群内的服务/数据库,对开发.调试.定位bug都很有用. 每次都要查,这里记录一下. 步骤 当然首先要确保本地机器上安 ...
- drf-Response drf-request.data 序列化类的使用 反序列化新增、修改、删除数据
目录 APIView基本使用 使用原生Django写接口(View + JsonResponse) 使用drf写接口(APIView + drf Response) drf 两种导入View的方式 d ...
- IDC《中国边缘云市场解读 (2022)》:阿里云蝉联中国公有云市场第一
国际权威咨询公司IDC发布<中国边缘云市场解读(2022 )>报告,中国边缘公有云服务市场,阿里云蝉联第一. 市场蝉联第一,"边缘"生长强劲 近期,全球领先的IT市场研 ...
- MIGO BAPI_GOODSMVT_CREATE创建及增强
1.MIGO过账BAPI新增字段 BAPI新增收货行号字段,保存外围系统的数据 1.1.MATDOC表新增收货行号 1.2.MSEG表新增收货行号 创建DDL视图用于扩展NSDM_E_MSEG 1.3 ...
- 【每日一题】15.Xorto (前缀和枚举)
补题链接:Here 题意:选取任意不重叠的两个区间,使异或结果为 \(0\) 样例:\(1,2,3,4,5,5\) 在样例中我们可以选取 \(1,2,3\) 和 \(5,5\) 就是满足题意 思路:相 ...