typescript 类型映射 (ReadOnly、Partial)
有时候需要一个类型,是依赖于上一个类型但是,对属性的要求去不同interface Person{name: string;agent: number;
}
type Person2 = Readonly<Person>;
type Person3 = Partial<Person>;
class Test {run() {let person: Person = {name: 'dd',agent: 1};person.name = 'cc';let person2: Person2 = {name: 'read',agent: 1};// person2.agent = 3; 报错let person3: Person3 = {name: 'person 3' // 属性不完整也不会报错}}
}ReadOnly、Partial源码type Readonly<T> = {readonly [P in keyof T]: T[P];
}
type Partial<T> = {[P in keyof T]?: T[P];
}用 in, keyof即可实现type Pick<T, K extends keyof T> = {[P in K]: T[P];
}
type Record<K extends string, T> = {[P in K]: T;
}
转载于:https://www.cnblogs.com/smzd/p/11206044.html
typescript 类型映射 (ReadOnly、Partial)相关推荐
- Typescript 类型的常用知识与技能
Typescript 类型系统 本文主要整理与翻译自 lib.es5.d.ts与微软Typescript文档.MDN文档. 邮箱 :291148484@163.com CSDN 主页:https:// ...
- 你所不了解的TypeScript 类型编程
点击上方"前端开发博客",选择"设为星标" 回复"2"加入前端群 前言 作为前端开发的趋势之一,TypeScript正在越来越普及,很多人像 ...
- TypeScript类型
implements子句 类可以实现接口,使用关键字implements 可以使用一个implements子句来检查一个类,是否满足了一个特定的接口.如果一个类不能正确地实现它,就会发出一个错误 注意 ...
- NHibernate VS .NET Type VS DbType 的类型映射关系
在使用NHibernate作为ORM工具的时候,我们经常会用到配置文件,包括NH的配置和实体映射的配置. 在配置实体映射关系的时候,有时候需要配置属性的类型映射,因为.NET的数据类型和数据库的数据类 ...
- Oracle -jdbc-java 的类型映射
http://blog.csdn.net/a9529lty/article/details/6023331 Oracle 8i 的类型映射 下表列出了用于 Oracle 8i 数据库的数据库类型和 J ...
- java高级用法之:JNA类型映射应该注意的问题
文章目录 简介 String Buffers,Memory,数组和Pointer 可变参数 总结 简介 JNA提供JAVA类型和native类型的映射关系,但是这一种映射关系只是一个大概的映射,我们在 ...
- IIS服务器上增加mp4格式MIME 类型映射设置具体步骤
2019独角兽企业重金招聘Python工程师标准>>> 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现"无法找到该页 ...
- CSRobot gen:mssql-c#类型映射
CSRobot的gen命令,有一个参数--map,是指数据库字段类型到实体类型映射,本例是sql server到csharp的类型映射: SQL Server C# bigint Int64 bina ...
- java 不同类型 映射_如何使用Java泛型映射不同的值类型
java 不同类型 映射 有时,一般的开发人员会遇到这样的情况,即他必须在特定容器内映射任意类型的值. 但是,Java集合API仅提供与容器相关的参数化. 例如,这将HashMap的类型安全使用限制为 ...
最新文章
- Ubuntu下用matplotlib作图时显示中文
- 一个比较简单、非常简单的计算器
- Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
- 链表题目--1 删除链表中所有等于val的值
- HTMLTestRunner测试报告
- 怎么把线稿提取出来_如何快速提取漫画线稿?【漫画技巧】
- 米斯特白帽培训讲义(v2)漏洞篇 文件包含
- numpy 矩阵求逆_numpy 矩阵运算
- CCF201703-5 引水入城(100分题解链接)
- win7便签的字体设置
- 北京大学冬令营(PKUWC2018)总结
- 计算机网络适配器找不到,网络适配器不见了怎么办?电脑Windows网络适配器不见了的5个解决方法...
- 吐血推荐 36招搞定电脑一切难题
- 零基础小白应该怎么入门编程开发
- python用glob遍历文件_python中用glob快速获取文件列表
- 【Unity】 节奏类游戏的表盘卡点功能
- 计算机毕业设计ssm企业部门报销管理g9d62系统+程序+源码+lw+远程部署
- 引擎师(引擎)“悠歌”回合文案释义
- 16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)
- 满足ASIL D的新能源汽车紧凑型逆变器产品开发及量产
热门文章
- H.264码流解析 一个SPS的nalu及获取视频的分辨率
- MFC,晕,今天才偶然发现FloatControlBar。。。
- php去掉最后一个,号,织梦当前位置去除最后一个''符号
- zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)
- 电脑关闭计算机怎么重启计算机,教您电脑关机后总是重启怎么办
- apache php mysql 整合_PHP+Apache+MySQL整合
- iOS手势操作简介(一)
- ORACLE导出导入意外终止导致 ORACLE initialization or shutdown in progress 问题解决
- JAVA EE 基本了解
- 反射笔记-----------------------------