Как мне определить следующий код типа ExcludeAllRequiredProps<T>
, чтобы исключить (как следует из названия) все необходимые свойства?Заранее спасибо.
type A = {
a: number,
b: number,
c?: number,
d?: number
}
type B = ExcludeAllRequiredProps<A>
// B shall be { c?: number, d?: number }
[Изменить - через некоторое время]
Считаете ли вы это правильным решением?
type ExcludeAllRequiredProps<T> = {
[K in keyof T]?: T extends Record<K, T[K]> ? never : T[K]
}