在类型系统里实现通用的 Array.push 。
Array.push
例如:
type Result = Push<[1, 2], '3'>; // [1, 2, '3']
其实一开始看到这种题目都是很不可思议,毕竟没人会在 ts 里面干这种事.
但是其实实现起来非常简单,只需要创建一个新类型,这个类型先把原来的元组复制一份,再向元组中增加一个元素。
而复制,仅仅需要扩展操作符,增加一个元素,写在新元组中即可。
type Push<T extends any[], U> = [...T, U];
← 898-实现Includes 3060-实现Unshift →