Вопрос задан очень плохо, но лучше сформулировать не получилось.
Так что лучше объясню на примере. Есть интерфейс:
IQuery<IGroup>
IQuery<IGroup[]>
export type IQuery<T extends SomeType | SomeType[]> =
OtherType<T, T extends SomeType[] ? T[0] : T, {}>;
В таком виде он не работает, но логика работы должна быть такой. То есть мне надо, чтобы второй аргумент OtherType принимал Т, но не в виде массива, а первый аргумент должен быть массивом, если Т массив.
Собственно, возможно ли вообще решить данную проблему или придётся делать второй интерфейс для массивов?