免责声明:以下是过于简化的函数,我知道它们是无用的。
上述代码可以顺利转译。但我需要将
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>
在 TypeScript 中是无效的。
如何获取一个函数的返回类型,该函数的返回类型基于泛型而异?
interface ThingHolder<T> { thing: T }
? - jcalztypeof
。 - jcalz