typescript - TypeScript:需要类似于 ReturnType<...> 的东西,但对于第一个函数参数的类型
问题描述
是否可以在 TypeScript 中声明类似 ReturnType<...> 的东西,它不检索返回值的类型,而是检索第一个参数的类型?
type SingleArgFunction<A, R> = (arg: A) => R
// wrong => how to implement the following line correctly?
type FirstArgType<T extends SingleArgFunction<infer A, any>> = A
const numberToString: SingleArgFunction<number, string> =
(x: number) => String(x)
type R = ReturnType<typeof numberToString> // R => string
type F = FirstArgType<typeof numberToString> // F => number
解决方案
看起来这是你想要的:
type FirstArgumentType<T> = T extends (arg1: infer U, ...args: any[]) => any ? U : never;
推荐阅读
- python - 布林带阴影没有颜色阴影
- java - 不仅执行 main 方法(Java)是什么意思?
- python - 使用 .map 或类似文件根据特定行和列中的值创建 Pandas 列
- google-cloud-dataflow - 在 Google Dataflow 中查看作业图大小
- sql - 如何比较 SQL Server 中的 2 个字符串,如果有任何大小写差异,则不应为真
- javascript - 快速请求中止
- azure - 是否有等效于“az rest”的 PowerShell?
- java - 使用属性中的版本时 Maven 未解决的参考
- git - 如何分别提交文件夹A和文件B(在文件夹A中)?
- c# - 在测试项目上解析 DbContext 会返回带有错误 connectionString 的 DbContext