gpt4 book ai didi

typescript - 获取函数的返回类型

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:58 32 4
gpt4 key购买 nike

我有以下功能:

function test(): number {
return 42;
}

我可以使用typeof获取函数的类型:

type t = typeof test;

在这里,t 将是 () => number

有没有办法获取函数的返回类型?我希望 tnumber 而不是 () => number

最佳答案

编辑

从 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[]

参见 this pull request to Microsoft/TypeScript了解详情。

TypeScript 很棒!


老派黑客

不幸的是,Ryan 的回答不再有效。但是我用一个让我非常高兴的 hack 修改了它。看:

const fnReturnType = (false as true) && fn();

它通过转换来工作 falsetrue 的字面值, 所以类型系统认为返回值是函数的类型,但是当你实际运行代码时,它在 false 上短路.

关于typescript - 获取函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015691/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com