Как правильно расширить дженерик интерфейс?

Для правильного расширения дженерик интерфейса в TypeScript, можно использовать следующий синтаксис:

interface GenericInterface<T> {
  prop: T;
}

interface ExtendedInterface<T, U> extends GenericInterface<T> {
  anotherProp: U;
}

В данном примере, мы объявляем интерфейс GenericInterface с одним типовым параметром T, содержащим свойство prop типа T.

Затем мы объявляем интерфейс ExtendedInterface с двумя типовыми параметрами T и U, который расширяет интерфейс GenericInterface. В этом случае, интерфейс ExtendedInterface будет иметь все свойства и методы, которые имеются в интерфейсе GenericInterface, а также свойство anotherProp типа U.

Пример использования:

const obj: ExtendedInterface<number, string> = {
  prop: 10,
  anotherProp: "Hello"
};

console.log(obj.prop); // Выведет: 10
console.log(obj.anotherProp); // Выведет: Hello

В данном примере мы создаем объект obj, который является экземпляром интерфейса ExtendedInterface. Мы указываем типы параметров number и string, что соответствует типам T и U соответственно. Затем мы присваиваем значения свойствам prop и anotherProp объекта obj. После этого, мы выводим значения этих свойств в консоль.

В результате, мы получаем вывод значений свойств: 10 для prop и Hello для anotherProp. Это подтверждает, что расширение дженерик интерфейса происходит правильно.