平台封装了函数但没有详细说明,如果反向获取参数可选值?

暴露给开发者了一个接口函数

interface DollarStatic {
    DispatchEvent(eventname:stirng,...args:any[]):void
}

eventname

  • 估计长度不会超过50的字符串,
  • 有限个,但不知道一共有多少个。
  • 没有提供枚举给开发者。
  • 如果输入的字符串不是有效的事件名,会报错Invalid event name ...

args

  • 会根据eventname的不同而要求不同,
  • 0-5个都遇到过,不知道会不会有要求更多的。
  • 如果输入的参数个数过多或过少,会报错Invalid number of arguments for event ...
  • 如果输入的参数类型不匹配,会报错Event arguments could not be parsed ...

打印出来就是 function DispatchEvent()

在平台方由于各种原因无法提供更多信息的情况下,我希望获得所有的可以用的事件名,甚至是每个参数的类型要求

明确是V8引擎,但不知道封装了啥函数。


回复
阅读 617
1 个回答

如果提供给你的接口没有明确标出eventname的类型,只是在程序中区分,告诉你是string的话,那是永远不可能拿到类型的。
如果提供给你的函数接口是用重载定义的,那么只能获取重载最后一个类型定义。
如果你想获取所有重载类型,必须要知道函数的重载次数才有可能。
如果提供给你的接口是泛型定义的,那你要利用泛型结构获取想要的参数类型。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进