📄️ Pick
不使用 Pick ,实现 TS 内置的 Pick 的功能。从类型 T 中选出符合 K 的属性,构造一个新的类型。
📄️ Awaited
假如我们有一个 Promise 对象,这个 Promise 对象会返回一个类型。在 TS 中,我们用 Promise 中的 T 来描述这个 Promise 返回的类型。请你实现一个类型,可以获取这个类型。
📄️ Concat
在类型系统里实现 JavaScript 内置的 Array.concat 方法,这个类型接受两个参数,返回的新数组类型应该按照输入参数从左到右的顺序合并为一个新的数组。
📄️ Exclude
实现内置的 Exclude 类型,但不能直接使用它本身。
📄️ First of Array
实现一个 First 泛型,它接受一个数组 T 并返回它的第一个元素的类型。
📄️ If
实现一个 IF 类型,它接收一个条件类型 C ,一个判断为真时的返回类型 T ,以及一个判断为假时的返回类型 F。 C 只能是 true 或者 false,T 和 F 可以是任意类型。
📄️ Includes
在类型系统里实现 JavaScript 的 Array.includes 方法,这个类型接受两个参数,返回的类型要么是 true 要么是 fals
📄️ Parameters
实现内置的 Parameters 类型,而不是直接使用它,可参考 TS 官方文档
📄️ Push
在类型系统里实现通用的 Array.push。
📄️ Unshift
实现类型版本的 Array.unshift。
📄️ Readonly
不要使用内置的 Readonly,自己实现一个泛型 Readonly 会接收一个 泛型参数,并返回一个完全一样的类型,只是所有属性都会是只读 (readonly) 的。
📄️ Tuple to Object
将一个元组类型转换为对象类型,这个对象类型的键/值和元组中的元素对应。
📄️ Length of Tuple
创建一个 Length 泛型,这个泛型接受一个只读的元组,返回这个元组的长度。