Push
在类型系统里实现通用的 Array.push 。
// 假如你有一下这两个数组,你怎样支持他们的类型
type Result = Push<[1, 2], '3'> // [1, 2, '3']
/**
* 思路:
* 1. 利用 extends 约束数组只读 并且是个数组
* 2. 有两个参数 利用扩展运算符展开数组的内容 和 即新增的元素
*/
type Push<T extends readonly unknown[], U> = [...T, U];
// 假如你有一下这两个数组,你怎样支持他们的类型
type Result = Push<[1, 2], '3'> // [1, 2, '3']
/**
* 思路:
* 1. 利用 extends 约束数组只读 并且是个数组
* 2. 有两个参数 利用扩展运算符展开数组的内容 和 即新增的元素
*/
type Push<T extends readonly unknown[], U> = [...T, U];