阿宝哥精心准备的《轻松学 TypeScript》 视频教程已经更新到第十九期了,合集播放量已达 14W+。通过形象生动的动画,让你轻松搞懂 TypeScript 的难点和核心知识点!

如果你刚接触 TypeScript 不久,在阅读 TypeScript 内置工具类型的用法和内部实现的文章时,可能会看到 Pick 工具类型,对于该类型的语法你可能会感到陌生。

type Pick<T, K extends keyof T> = {[P in K]: T[P];
};type User = {id: number;name: string;address: string;
};type PickedUser = Pick<User, "id" | "name">;

其实学习新事物一种比较好的方式是使用类比。接下来阿宝哥将借助 JavaScript 中的函数来帮助你快速理解 Pick 工具类型背后的语法。

function Pick(obj, keys) {const ret = {};for (const key of keys) {ret[key] = obj[key];}return ret;
}const user = {id: 666,name: "阿宝哥",address: "厦门",
};const PickedUser = MyPick(user, ["id", "name"]);

在以上代码中,function 是关键字用于声明函数,Pick 是函数名称,而小括号内的 obj 和 keys 是参数,大括号中定义的是函数体。

而对于 Pick 工具类型来说,type 关键字用于给类型取个别名,方便重复使用,Pick 就是类型的名称。尖括号内的 T 和 K 属于类型参数,与 JavaScript 函数中参数的区别是类型参数存储的是类型,而 JavaScript 函数参数存储的是值。

其中 extends 是泛型约束的语法,用于约束类型的范围。 大括号中是该工具类型的具体实现,它使用了 TypeScript 映射类型的语法。

其实,你可以把 TypeScript 内置的工具类型理解成特殊的函数,它们被用于处理 TypeScript 中存在的类型。调用工具类型的方式与调用 JavaScript 函数的区别是使用的是尖括号。

最后,为了便于大家理解,阿宝哥以图片的形式来演示一下 Pick 工具类型的执行过程。

如果你想详细了解映射类型,可以观看 “用了 TS 映射类型,同事直呼内行!” 这篇文章。

扫码查看 轻松学 TypeScript 系列视频教程

(目前已更新 19 期)

你喜欢以这种形式学 TS 么?喜欢的话,记得点赞与收藏哟。

【TS】1368- 秒懂 TypeScript 泛型工具类型!相关推荐

  1. TypeScript 实用工具类型之 Pick 类型

    TypeScript 实用工具类型之 Pick 类型 TypeScript 实用工具类型之 Pick 类型 1. 什么是对象类型转换? 2. 什么是 TypeScript Pick? 2.1 用 Pi ...

  2. TypeScript 实用工具类型之 Partial 类型

    TypeScript 实用工具类型之 Partial 类型 TypeScript 实用工具类型之 Partial 类型 1. 场景概述 2. Partial<Type> 3. 使用 Int ...

  3. typescript (TS)进阶篇 --- 内置高阶泛型工具类型(Utility Type)

    第一部分 前置内容 关键字 keyof 索引查询 对应任何类型T,keyof T的结果为该类型上所有公有属性key的联合: interface Eg1 {name: string,readonly a ...

  4. 【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型

    前言 博主主页

  5. TypeScript泛型工具

    Required 将类型的属性变成必选 interface Person {name?: stringage?: numberhobby?: string[] }// 下面的类型不用定义, TypeS ...

  6. 一文讲解Typescript中工具类型

    ​想继续深入Ts其他知识点的同学可以关注下往期文章~

  7. 实用typescript_TypeScript 泛型使用2-常见的工具类型

    TypeScript 泛型使用2-常见的工具类型 hucheng91:TypeScript 泛型使用1​zhuanlan.zhihu.com 接上篇,这篇梳理下TypeScript 封装了很多常见的基 ...

  8. TypeScript里的工具类型Partial的理解用法

    TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...

  9. 【TS】546- 掌握 TS 这些工具类型,让你开发事半功倍

    创建了一个"重学TypeScript"的微信群,想加群的小伙伴,加我微信 "semlinker",备注重学TS. 一.类型别名 TypeScript 提供了为类 ...

最新文章

  1. 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
  2. 【英语天天读】The Two Roads
  3. java中map可以为空吗_检查NavigableMap是否在Java中为空
  4. SQL对Xml字段的操作
  5. 第二章 数据的表示和运算 2.1.1 进位计数制 [计算机组成原理笔记]
  6. matlab guide对话框+滑动条+弹出式菜单+列表框的使用
  7. MySQL—常用指令总结
  8. Git笔记(13) 分支管理
  9. quartz cron 每周一_quartz框架和关闭超时订单
  10. 【软件测试】白盒测试与黑盒测试的区别(不同)
  11. typeorm_如何评价TypeORM?
  12. JQuery 使用技巧
  13. KMP模板以及入门题型总结
  14. Retinex算法详解
  15. 2014 年移动设备界面设计有哪些趋势?
  16. CF595B Pasha and Phone
  17. 虚拟交换系统 (VSS)
  18. python项目 from models import * 报错
  19. 解决M1芯片mac安装AU( Audition2020)AU2020已适配M1芯片,M1处理器安装AU教程方案
  20. Unity Shader - Predefined Shader preprocessor macros 着色器预处理宏

热门文章

  1. android exo解码问题,android – exoplayer-自动更改质量不起作用(hls)
  2. 形容计算机专业的诗句,形容很专业的诗句
  3. 计算机word怎么调行距,word行距怎么调?最全的方法来了-行间距怎么设置
  4. iOS 加载第三方字体
  5. 长春找初中生物一对一辅导|长春初中生物补习班费用
  6. 计算机控制面板的字体在哪里,控制面板中哪里有字体文件夹?
  7. 【听】怦然心动的人生整理魔法,人生,从整理开始
  8. 关于HTML中下拉框的一些属性
  9. 中国云计算产业发展及大数据应用高峰论坛武汉举行
  10. apache配置请求转发