你是否曾经:html
- 看了各类TS文档,写起来仍是似懂非懂;
- 接触了一些TS关键字,用起来不太熟练,缺少明确的理论参考;
- TS写着写着降级到了JS;
- 类型在不知道什么地方就断了层,再也接不上了;
基于咱们踩坑TS的过程,总结了这篇文档。经过边学边练,从问题到解答到知识点,带你体验类型体操的快乐,并把类型体操应用在平常开发中。前端
序号 | 标题 | 难度指数 | 关键词 | 题目摘要 |
---|---|---|---|---|
1. | Extract | 🌟 | generics 、union 、extends |
从某联合类型中选出“和其余类型相交”一部分 |
2. | Lookup | 🌟🌟 | generics 、union 、extends |
从某联合类型中选出“知足特定条件的”一部分 |
3. | Chainable Option | 🌟🌟 | generics 、recursive |
使用递归使类型知足链式调用 |
4. | SubType | 🌟🌟 | keyof |
给对象作merge操做 |
5. | Change Argument | 🌟🌟🌟 | infer 、ReturnType 、Parameters |
操做函数的参数和返回值的类型 |
6. | Underscore | 🌟🌟🌟 | Template Literal Types 、recursive |
下划线字符串转驼峰式 |
7. | EventEmitter | 🌟🌟🌟🌟 | generics 、function overload 、Intersection |
经过泛型解决函数参数间的相互依赖 |
8. | Permutation | 🌟🌟🌟🌟 | union 、extends 、never |
全排列问题 |
9. | Simple Vue | 🌟🌟🌟🌟🌟 | this |
模拟一个Vue的this操做 |
10. | Union To Tuple | 🌟🌟🌟🌟🌟 | function overload 、Intersection |
无序联合类型转有序tuple |
- [Conditional Types - Checking extends never](https://github.com/microsoft/TypeScript/issues/23182);
- <https://github.com/type-challenges/type-challenges/issues/614>
复制代码
- [TypeScript 类型技巧 - 多参数类型约束](https://zhuanlan.zhihu.com/p/95828198);
- [Typescript Tips: 动态重载实现廉价版dependent type](https://zhuanlan.zhihu.com/p/95829351)
复制代码
- [TypeScript union function types](https://stackoverflow.com/questions/58629426/typescript-union-function-types)
复制代码
欢迎关注「 字节前端 ByteFE 」git
简历投递联系邮箱「tech@bytedance.com」github