TypeScript infer の使い所
{id: 100} や {id: '100’} のように、id というプロパティをもつオブジェクトの id の型を取得したい。
type Id<T> = T extends {id: infer U} ? U : never;
T が id というプロパティを持っている場合は、その id の型を返す。
もし、id というプロパティがなければ never を返す。
type Item1 = {id: number};
type Item2 = {id: string};
type Item3 = {name: number};
type AAA = Id<{id: number}>; //number
type BBB = Id<{id: string}>; //string
type CCC = Id<{name: number}>; //never
最近のコメント