I'd like to start by saying that I am doing this series to learn and understand better Typescript, so feel free to correct me or contact me.
Let's create a type for the JavaScript Array.concat function. A type takes the two arguments. The output should be a new array that includes inputs in ltr order.
Some examples:
Concat<[], []> // [] Concat<[], [1]> // [1] Concat<[1, 2], [3, 4]>, // [1, 2, 3, 4] Concat<['1', 2, '3'], [false, boolean, '4']> // ['1', 2, '3', false, boolean, '4']
So we know that our inputs should be arrays as well as the return type.
type Concat<T extends unknown[], U extends unknown[]> = [...T,... U]
<T extends unknown[], U extends unknown[]> We first check if both of our inputs are arrays. If so, using the spread operator we spread both input values into a new array [...T,... U].
And there you go, our concat type is done.
Thank you!
you can find me here My Twitter