Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Обучение для смены профессии, роста в карьере и саморазвития
type NonNull<T> = T extends infer O ? {[k in keyof O]: O[k] extends null ? never : O[k]} : never; type X = NonNull<{email: string | null}>; // Initial type: {email: string | null extends null ? never : (string | null)} // Ожидаю {email: string}
type NonNull<T> = {[K in keyof T]: Exclude<T[K], null>}; type X = NonNull<{email: string | null}>;