Как мне объявить другой идентичный интерфейс, только у которого поля 'a' и 'b' обязательные?
type F<T, K extends keyof T> = T & { [Key in K]-?: T[Key] }
а зачем объявлять я бы расширил и добавил обязательные
Обсуждают сегодня