Typescript Infer Deep Dive Conditional Types Pivot Recursive Unwrap
Definisi
infer adalah kata kunci di dalam conditional types untuk menangkap tipe di dalam kondisi, lalu memakainya di cabang true. Ini kunci untuk "membongkar" tipe yang dibungkus (Promise, array, function) tanpa menyebut tipe tersebut secara eksplisit.
Kapan dipakai
Pakai infer saat kamu ingin mengekstrak sebagian tipe:
Awaited<T>→ tipe hasil PromiseElementOf<T>→ tipe elemen arrayReturnType<T>→ tipe kembalian functionUnwrap<T>→ tipe di balikRef/Box
Jangan pakai untuk hal sederhana yang cukup T[] atau Promise<T> langsung.
Cara kerja
Ekstrak elemen array
type ElementOf<T> = T extends (infer U)[] ? U : never;