我有以下功能:
function test(): number {
return 42;
}
我可以通过使用获取函数的类型typeof
:
type t = typeof test;
Here, t
将() => number
.
有没有办法获取函数的返回类型?我想t
to be number
代替() => number
.
EDIT
从 TypeScript 2.8 开始,这正式可以通过ReturnType<T>
.
type T10 = ReturnType<() => string>; // string
type T11 = ReturnType<(s: string) => void>; // void
type T12 = ReturnType<(<T>() => T)>; // {}
type T13 = ReturnType<(<T extends U, U extends number[]>() => T)>; // number[]
See 这个对 Microsoft/TypeScript 的拉取请求了解详情。
TypeScript 太棒了!
老派黑客
不幸的是,瑞安的答案不再有效。但我用一个 hack 修改了它,我对此感到非常高兴。看哪:
const fnReturnType = (false as true) && fn();
它通过铸造起作用false
到字面值true
,这样类型系统就认为返回值是函数的类型,但是当你实际运行代码时,它就短路了false
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)