type Unpacked<T> = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise<infer U> ? U : T; が何しているのかを読めるようになる。 また実際にinferを用いて実装できるようになるのが目的。 inferとは https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-in-conditional-types の抄訳 inferは日本語に表すと「推論」です。 TypeScriptのextendsを使うと、型での条件分岐が可能になります。(extendsについてもまとめたい) inferはその条件分岐で推論された型を指すときに用いることが

