одно из них, но только одно.
Вот такой интерфейс:
export interface Templatable {
templateName: string;
templateRef: string;
}
Создал тип:
type RequireOnlyOne<T, Keys extends keyof T = keyof T> =
Pick<T, Exclude<keyof T, Keys>>
& {
[K in Keys]-?:
Required<Pick<T, K>>
& Partial<Record<Exclude<Keys, K>, undefined>>
}[Keys];
Далее - у меня есть еще один интерфейс, который экстендит первый интерфейс
export interface Title extends Templatable {....}
Но я не могу отэкстендиться от типа
export interface Title extends RequireOnlyOne<Templatable> {....}
Как можно решить данную проблему?
&
Обсуждают сегодня