Skip to content

astak16/blog-ts-challenges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 

Repository files navigation

Create by uccs 2022-03-27

在工作中很多时候停留在会用的阶段,对类型定义文件看不懂,就想提升自己的 ts 水平,在 github 中找到了 ts类型体操 这个项目,在里面看到一个大神的文章: TypeScript 类型体操天花板,用类型运算写一个 Lisp 解释器 后,对 ts 有了全新的认识,比如文章里提到的用 ts 实现四则运算,对现阶段的我来说太震撼了,准备好好学一学 ts,开此项目记录自己 ts 的学习笔记。

题目

分类 难度 题目
object medium DiffMergePickByType
列表
  1. MyPick easy
  2. MyOmit medium
  3. MyExclude easy
  4. FirstOfArray easy
  5. MyReadonly easy
  6. MyReturnType medium
  7. GetRequired hard
  8. GetOptional hard
  9. MyAwaited easy
  10. If easy
  11. Concat easy
  12. MyReadonly2 medium
  13. DeepReadonly medium
  14. TupleToUnion medium
  15. TupleToObject easy
  16. UnionToTuple hard
  17. UnionToIntersection hard
  18. TupleToEnumObject hard
  19. TupleToNestedObject medium
  20. Chainable medium
  21. LastOfArray medium
  22. Pop medium
  23. PromiseAll medium
  24. LookUp medium
  25. TrimLeft、Trim、TrimRight medium
  26. Capitalize medium
  27. Replace And ReplaceAll medium
  28. AppendArgument medium
  29. MyParameters easy
  30. LengthOfString medium
  31. Flatten medium
  32. AppendToObject medium
  33. Absolute medium
  34. StringToUnion medium
  35. Merge medium
  36. KebabCase medium
  37. Diff medium
  38. PickByType medium

基础知识

  1. 条件类型:extends 用法
  2. Pick
  3. Exclude
  4. Omit
  5. OmitPickExclude 的区别
  6. ReturnType
  7. 通俗易懂的讲解 infer 关键字
  8. 默认约束 = keyof T
  9. 4种类型约束
  10. keyof 和类型访问
  11. 协变和逆变
  12. keyof 取值
  13. 联合类型和交叉类型
  14. typeinterface 区别
  15. 元组和数组的区别

不理解到理解

  1. as
  2. -?+?
  3. 交叉类型做约束(语法糖)
  4. typeof的用法
  5. 递归中 false 分支最终会反应到 true 分支中

参考文章

  1. TupleToUnion ---- TypeScript: How to get types from arrays
  2. 协变和逆变 ---- 大白话聊 TypeScript 中的变型

About

ts类型体操学习笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published