📝
型の上書き
@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