| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 搞懂 TypeScript 中的映射类型(Mapped Types) -> 正文阅读 |
|
[JavaScript知识库]搞懂 TypeScript 中的映射类型(Mapped Types) |
本文会和大家详细介绍 TypeScript 中的映射类型(Mapped Type),看完本文你将学到以下知识点:
接下来会先从「数学中的映射」开始介绍。
如果你对 TypeScript 还不熟悉,可以看下面几篇资料: 一、什么是映射?
在数学中,映射是指两个元素的集合之间元素相互对应的关系,比如下图:
可以将映射理解为函数,如上图,当我们需要将集合 A 的元素转换为集合 B 的元素,可以通过 二、TypeScript 中的映射类型是什么?1. 概念介绍TypeScript 中的映射类型和数学中的映射类似,能够将一个集合的元素转换为新集合的元素,只是 TypeScript 映射类型是将一个类型映射成另一个类型。 在我们实际开发中,经常会需要一个类型的所有属性转换为可选类型,这时候你可以直接使用 TypeScript 中的
这样我们就实现了将 2. 实现方法TypeScript 映射类型的语法如下:
我们既然可以通过 我们可以在编辑器中,将鼠标悬停在 拆解一下其中每个部分:
这样就实现了
三、映射类型的应用TypeScript 映射类型经常用来复用一些对类型的操作过程,比如 TypeScript 目前支持的 21 种工具类型,将我们常用的一些类型操作定义成这些工具类型,方便开发者复用这些类型。
下面我们挑几个常用的工具类型,看下其实现过程中是如何使用映射类型的。
1. Required 必选属性用来将类型的所有属性设置为必选属性。 实现如下:
使用方式:
这边的 2. Readonly 只读属性用来将所有属性的类型设置为只读类型,即不能重新分配类型。 实现如下:
使用方式:
3. Pick 选择指定属性用来从指定类型中选择指定属性并返回。 实现如下:
使用如下:
4. Omit 忽略指定属性作用类似与 实现如下:
使用方式:
5. Exclude 从联合类型中排除指定类型用来从指定的联合类型中排除指定类型。 实现如下:
使用方式:
四、映射修饰符的应用在自定义映射类型的时候,我们可以使用两个映射类型的修饰符来实现我们的需求:
前面介绍
当然,也可以对修饰符进行操作:
比如:
也可以放在前面使用:
五、总结本文从数学中的映射作为切入点,详细介绍 TypeScript 映射类型(Mapped Type)并介绍映射类型的应用和修饰符的应用。 在学习 TypeScript 类型系统时,尽量多和数学中的集合类比学习,比如 TypeScript 中的联合类型,类似数学中的并集等。 学好映射类型,是接下来做类型体操中非常重要的基础~~ 参考资料
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:23:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |