Вывести аргументы типа из аргументов типа расширенного типа - PullRequest
0 голосов
/ 06 мая 2020

Я бы хотел, чтобы типы C2, C3 и C4 из приведенного ниже кода были извлечены из кода C1 в приведенном ниже коде. Возможно ли это?

interface TypeA<A1, A2, A3> {
  funcA1(): A1;
  funcA2(): A2;
  funcA3(): A3;
}

interface TypeB {
  propC1: TypeA<'t1', 't2', 't3'>;
}

abstract class TypeC<C1 extends TypeB['propC1'], C2 = {}, C3 = {}, C4 = {}> {
  abstract funcC1(a1: C2, a2: C3): C4;
}

Ссылка на игровую площадку

Например, C3 должен иметь тип 't2' (C3 = A2 = 't2')

...