Отказ от ответственности: следуют чрезмерно упрощенные функции, я знаю, что они бесполезны
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>
не является допустимым машинописным текстом.
Как я могу получить тип возвращаемого значения функции, которая имеет другой тип возвращаемого значения на основе дженериков?
interface ThingHolder<T> { thing: T }
? - person jcalz   schedule 24.04.2018T
? - person jcalz   schedule 24.04.2018