holdanddeepdive / typescript-study

4 stars 0 forks source link

[2주차] Easy 풀이 #5

Open sbyeol3 opened 1 year ago

hyunahOh commented 1 year ago
type MyPick<T, K extends keyof T> = {
  [SpecificKey in K]: T[SpecificKey]
}

type MyReadonly<T> = Readonly <T>

type TupleToObject<T extends readonly PropertyKey[]> = {
  [TIndex in T[number]]: TIndex
}

type First<T extends any[]> = T extends [infer TFirst, …any] ? TFirst : never;

type Length<T extends readonly any[]> = T['length']

type MyExclude<T, U> = T extends U ? never : T;

type MyAwaited<T extends Promise<any>> = T extends Promise<infer Inner> ? 
                  Inner extends Promise<any> ? MyAwaited<Inner> : Inner : never;

type If<C extends boolean, T, F> = C extends true ? T : F

type Concat<T extends any[], U extends any[]> = […T, …U]

[오답] : type Includes<T extends readonly any[], U> = U extends T[number] ? true : false;

type Push<T extends any[], U> = […T, U]

type Unshift<T extends any[], U> = [U, …T]

type MyParameters<T extends (… args: any[]) => any> = T extends (…args: infer F) => any ? F : never
hyunahOh commented 1 year ago

Includes 공부해오기