关于 typescript 里面的 分布式条件类型
1. 什么是分布式条件类型
非分布式: 操作作用于混合类型大家都有的成员, 也就是交集
分布式: 操作应用于混合类型里所有的成员, 也就是并集
代码演示
// 非分布式(操作只作用于共同成员)
type Fruit =| { species: 'banana', curvature: number }| { species: 'apple', color: string }type KeyOfFruit = keyof Fruit; // "species"
// 分布式(操作作用于所有成员)
type DistributedKeyOf<T> =T extends any? keyof T: nevertype KeyOfFruit = DistributedKeyOf<Fruit>; // "species" | "curvature" | "color"
2. 什么时候会产生分布式条件类型
被检测类型为一个联合类型的时候, 该条件类型就是分布式条件类型
type Demo<T,U>= T extends U ? never : T
type A = Demo <'a'|'b'|'c','a'>
// 不熟悉分布式条件的可能会认为, 执行逻辑应该是这样的 <'a'|'b'|'c','a'> extends 'a'
// 然而并不是, 根据分布式逻辑: 'a' extends 'a' ? never : T | 'b' extends 'a' ? never : T | 'c' extends 'a' ? never : T , 最后进行结果汇总: never | 'b' | 'c'
参考文档
参考文档-1
关于 typescript 里面的 分布式条件类型相关推荐
- TypeScript 2.8引入条件类型
最新发布的TypeScript 2.8包含了若干主要特性和一些问题修复,其中最为重要的是新增了条件类型,开发人员可以根据其他类型的特征为变量选择适当的类型. 条件类型最适合与泛型组合在一起使用.如果一 ...
- 使用TypeScript映射和条件类型使React组件更出色
by Deepu K Sasidharan 通过Deepu K Sasidharan 使用TypeScript映射和条件类型使React组件更出色 (Make your React component ...
- TS中的条件类型(ReturnType)
本偏介绍TS另一种高级类型-条件类型. 官方文档:https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distr ...
- 在条件类型中使用 infer 关键字
在 TypeScript 中条件类型的用法是: T extends U ? X : Y 跟 JS 中的条件表达式一样,如果 extends 语句为真,则取X类型 ,反之得到Y类型 .我们这里把X称为条 ...
- [TypeScript] 编程实践之1: Google的TypeScript代码风格3:类型
TypeScript语言规范 3 类型 3.1 Any类型 3.2 基本类型 3.2.1 Number类型 3.2.2 Boolean类型 3.2.3 String类型 3.2.4 Symbol类型 ...
- SAP MM初阶之ME12里为啥只能维护少量条件类型的价格?
SAP MM初阶之ME12里为啥只能维护少量条件类型的价格? 我们都知道,SAP采购模块里有采购信息记录主数据,可以在里面维护物料的采购价格,以及若干附加费的rate.这里维护好的采购价格,在创建采购 ...
- SAP MM 自定义条件类型出现在采购信息记录的'条件'界面里 ?
SAP MM 自定义条件类型出现在采购信息记录的'条件'界面里 ? 我在SAP系统里复制某个标准的采购条件类型,创建了一个新的自定义条件类型ZC05,并将其分配采购定价过程RM0000. 结果却出现一 ...
- SAP MM 条件类型中PB00的‘Group Cond.‘标记的作用?
SAP MM 条件类型中PB00的'Group Cond.'标记的作用? 如果没勾选这个标记,PO中的每个ITEM都根据其数量去取Scale里的价格, 而非PO汇总后的数量去取SCALE里的价格. 测 ...
- 定义交货输出条件类型(Output Types)
一.说明 在向客户销售过程中,创建交货单后,通常会打印一张让用户去库房领料的通知单,这涉及到输出控制(Output Control).SAP的输出不仅是打印,还包含邮件.传真.EDI等.输出也是SAP ...
最新文章
- 数据结构-图论-拓扑排序模板题(hdu3342)(poj1270)(hdu4857)
- C++中有string类,string是一个类不是一种类型,c语言中没有
- 国际计算机语言,国际标准的5种PLC编程语言简介
- 四元数和欧拉角的相互转换
- 博主新书:《大数据日知录:架构与算法》目录
- 新知丨口服益生菌是商业噱头?
- 使用Java扫描DynamoDB项目
- greenplum 数据库单机部署
- python计算快递运费价格表_python实现快递价格查询系统
- C语言10进制转2进制
- IOS引入百度统计热力图崩溃
- 鹿晗关晓彤公布恋情阿里云服务器救场 这位微博程序员新婚还加班
- UVALive - 4987 (dp+贪心)
- 饥荒联机版修改在线模式
- php 代码中使用换行
- Python jieba库的介绍与使用
- Ajax XHR请求
- SFC /SCANNOW发现损坏文件应对方法参考
- 浙大PTA拼题A读者验证码刷题页面、PTA免费刷题页面(不需要读者验证码)
- java循环练习题及答案_循环练习题及答案
热门文章
- 啃完阿里这份高并发编程核心笔记,反手涨了 5K
- 军用式计算机标准总线,军用CPCI加固计算机通用化、系列化研究
- 电子指南针Arduino笔记四电子指南针罗盘HMC5883L
- 为什么样本点平均值会经过线性回归直线?
- photoshop抠图技巧之快速抠毛发实例教程
- keepalived 防火墙配置
- 内网渗透-项目六外围打点
- SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)
- html游戏开发开题报告,基于H5 网页的打豆豆小游戏的设计与实现毕业论文+开题报告+设计源码...
- 关于Django的网络请求过程保存下!