easy
189 - Awaited
type MyAwaited = any
type MyAwaited<T extends Promise<any>> = T extends Promise<infer U> ? (U extends Promise<any> ? MyAwaited<U> : U) : never;
268 - If
type If<C, T, F> = any
type If<C extends boolean, T, F> = C extends true ? T : F;
type A = If<true, 'a', 'b'>
type B = If<false, 'a', 'b'>
533 - Concat
type Concat<T, U> = any
type Concat<T extends any[], U extends any[]> = [...T, ...U]
type Result = Concat<[1], [2]>
898 - Includes
type Includes<T extends readonly any[], U> = any;
type Includes<T extends readonly any[], U> = T extends [infer P, ...infer K] ? (Equal<P, U> extends true ? true : Includes<K, U>) : false;
type isPillarMen = Includes<['Kars', 'Esidisi', 'Wamuu', 'Santana'], 'Dio'>
3057 - Push
type Push<T, U> = any
type Push<T extends any[], U> = [...T, U]
type Result = Push<[1, 2], '3'>
3060 - Unshift
type Unshift<T, U> = any
type Unshift<T extends any[], U> = [U, ...T]
type Result = Unshift<[1, 2], 0>
3312 - Parameters
type MyParameters<T extends (...args: any[]) => any> = any
type MyParameters<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? P : never;