Obtener el tipo de retorno de una función que usa genéricos
Descargo de responsabilidad: siguen funciones demasiado simplificadas, soy consciente de que son inútiles
function thinger<T>(thing: T): T {
return thing;
}
const thing = thinger({ a: "lol" });
thing.a;
El código anterior se transpila muy bien. Pero necesito colocar el resultado dethinger<T>
en un objeto
interface ThingHolder {
thing: ReturnType<typeof thinger>;
}
const myThingHolder: ThingHolder = {
thing: thinger({ a: "lol" }),
};
Sin embargo, he perdido mi información de tipo, así quemyThingHolder.thing.a
No funciona
La propiedad 'a' no existe en el tipo '{}'
Así que probé lo siguiente
interface ThingHolder<T> {
thing: ReturnType<typeof thinger<T>>;
}
const myThingHolder: ThingHolder<{ a: string }> = {
thing: thinger({ a: "lol" }),
};
Perotypeof thinger<T>
no es mecanografiado válido
¿Cómo puedo obtener el tipo de retorno de una función que tiene un tipo de retorno diferente basado en genéricos?