📝

型の上書き

2023/11/20に公開

@muiの型にあったもの

分配されるOmit

export type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;

DistributiveOmitはユニオン型に対してそのユニット型に分配的に作用する。

interface X {
a: A
b: B
}
interface Y {
a: A
c: C
}

type Result = DistributiveOmit<X | Y, "a"> // {b: string} | {c: number}

型の上書き

Tに対し、Uにある型で上書きする。

export type Overwrite<T, U> = DistributiveOmit<T, keyof U> & U;


Discussion