а остальные вернуть как есть? Штука ниже все равно оставляет null у a
interface I {
a: number | null;
b: number;
}
type a = NonNullable<Pick<I, 'a'>> & Omit<I, 'a'>;
NonNullable убирает null из самого аргумента, а не из его внутренних значений Если нужно из конкретного набора, я бы сделал так: type RemoveNull<T, K extends keyof T> = { [Key in keyof T]: Key extends K ? NonNullable<T[Key]> : T[Key] } type a = RemoveNull<I, 'a'> Если у всех ключей, второй дженерик можно убрать
Обсуждают сегодня