Несколько интересных прочтений по ссылкам, которыми вы поделились, спасибо! Принятие ответа так (как минимум с TS 2.8) кажется невозможным :(

от ответственности: следуют чрезмерно упрощенные функции, я знаю, что они бесполезны

function thinger<T>(thing: T): T {
    return thing;
}

const thing = thinger({ a: "lol" });

thing.a;

Приведенный выше код переносится просто отлично. Но мне нужно разместить результатthinger<T> в объект.

interface ThingHolder {
    thing: ReturnType<typeof thinger>;
}

const myThingHolder: ThingHolder = {
    thing: thinger({ a: "lol" }),
};

Однако я потерял свою информацию типаmyThingHolder.thing.a не работает

Свойство 'a' не существует для типа '{}'

Поэтому я попробовал следующее

interface ThingHolder<T> {
    thing: ReturnType<typeof thinger<T>>;
}

const myThingHolder: ThingHolder<{ a: string }> = {
    thing: thinger({ a: "lol" }),
};

Ноtypeof thinger<T> не является допустимой машинописью.

Как я могу получить тип возврата функции, которая имеет другой тип возврата, основанный на обобщениях?

Ответы на вопрос(1)

Ваш ответ на вопрос