如何获取泛型方法的每个参数的类型

乔希

我正在寻找一种方法来获取传递给构造函数的函数参数的类型信息。

export class Test<T> {
  constructor(
     test: ((... params : any[]) => T) | (( ... params : any[] ) => Promise<T>
  ) {
     // Convert function or promise to promise
     this.test = this.test = (...params: any[]) => Promise.resolve(test(...params))
  }

  // How I store the promisify'd function/promise
  private test : (...params) => Promise<T>

  // I want to see typing information on the parameters for this method
  public async execute(...params: any[]) : Promise<any> {
     try {
        return await this.test(...params)
     } catch (error) {
        return error
     }
  }

当传入函数或承诺时,我将其存储为承诺。目前打字信息丢失。

在execute方法中,我希望能够看到要传入的参数的类型信息;它们应该匹配原始函数的参数。

例如;

let test = new Test( (a: number, b: string) : string => `${a}${b}`)
let output : string = test.execute(1, 'b') // should compile
let output : number = test.execute(1, 'b') // should not compile
let output : string = test.execute('b', 1) // should not compile, and this is the one I'm looking for.

有任何想法吗?我想知道我是否可以keyof巧妙地使用。

帕维尔

已提议输入可变参数参数,但仍在讨论中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

泛型方法从超类获取参数类型

来自分类Dev

如何从包含泛型参数的Type中获取“基本”类型?

来自分类Dev

如何在 IEnumerable<object> 上获取泛型参数的类型?

来自分类Dev

Java泛型-获取泛型参数的实际类型

来自分类Dev

Java泛型-获取泛型参数的实际类型

来自分类Dev

如何在方法参数中使用泛型类型投影?

来自分类Dev

调用泛型方法时如何推断参数类型?

来自分类Dev

如何在泛型方法中引用类型参数的值

来自分类Dev

快速获取泛型的参数化类型?

来自分类Dev

获取泛型类型参数的数量

来自分类Dev

如何从泛型方法参数中获取Java类?

来自分类Dev

如何获取在数组的方法中使用的泛型类型?

来自分类Dev

如何为方法链接的泛型类型获取TRTTIType

来自分类Dev

如何在泛型方法中获取泛型类型的类实例

来自分类Dev

如何检查泛型参数关联类型?

来自分类Dev

获取泛型方法以从运行时类型推断出类型参数

来自分类Dev

如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

来自分类Dev

从StackFrame获取泛型方法的真实类型

来自分类Dev

如何获取 TypeReference 的泛型参数?

来自分类Dev

如何获取嵌套的泛型类型

来自分类Dev

获取泛型类型

来自分类Dev

如何创建泛型方法以返回泛型类型

来自分类Dev

反射无法获取从泛型接口重写的方法的实际参数类型?

来自分类Dev

如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

Related 相关文章

  1. 1

    在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

  2. 2

    如何从泛型定义和泛型参数获取泛型类型?

  3. 3

    如何从泛型定义和泛型参数获取泛型类型?

  4. 4

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  5. 5

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  6. 6

    泛型方法从超类获取参数类型

  7. 7

    如何从包含泛型参数的Type中获取“基本”类型?

  8. 8

    如何在 IEnumerable<object> 上获取泛型参数的类型?

  9. 9

    Java泛型-获取泛型参数的实际类型

  10. 10

    Java泛型-获取泛型参数的实际类型

  11. 11

    如何在方法参数中使用泛型类型投影?

  12. 12

    调用泛型方法时如何推断参数类型?

  13. 13

    如何在泛型方法中引用类型参数的值

  14. 14

    快速获取泛型的参数化类型?

  15. 15

    获取泛型类型参数的数量

  16. 16

    如何从泛型方法参数中获取Java类?

  17. 17

    如何获取在数组的方法中使用的泛型类型?

  18. 18

    如何为方法链接的泛型类型获取TRTTIType

  19. 19

    如何在泛型方法中获取泛型类型的类实例

  20. 20

    如何检查泛型参数关联类型?

  21. 21

    获取泛型方法以从运行时类型推断出类型参数

  22. 22

    如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

  23. 23

    从StackFrame获取泛型方法的真实类型

  24. 24

    如何获取 TypeReference 的泛型参数?

  25. 25

    如何获取嵌套的泛型类型

  26. 26

    获取泛型类型

  27. 27

    如何创建泛型方法以返回泛型类型

  28. 28

    反射无法获取从泛型接口重写的方法的实际参数类型?

  29. 29

    如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

热门标签

归档