2020-08-31から1日間の記事一覧

特定のキーを除く型(Omitをネストさせる)

type NestedOmit<T, K extends keyof T> = { [P in keyof Omit<T, K>]: T[P] extends Array<infer R> ? K extends keyof R ? Array<NestedOmit<R, K>> : Array<R> : K extends keyof T[P] ? NestedOmit<T[P], K> : T[P] }; 例えばレシピとその材料を表す以下のinterfaceがあったとき interface Recipe { id: number; name: strin</t[p],></r></nestedomit<r,></infer></t,></t,>…