繁体   English   中英

如何获取 function 参数类型

[英]How to get a function parameter types

我可以使用ReflectAPI轻松获取方法的参数类型:

Reflect.getMetadata('design:paramtypes', target, propertyKey);

但是,当我尝试获取函数的参数类型时,它总是返回未定义。 我尝试过使用这些示例函数:

const foo = (bar: Bar) => void 0;

function foo(bar: Bar) {}
export function foo(bar: Bar) {}

而且我还读到 TypeScript 仅在您装饰 class 和方法时才发出元数据。 那么,如何获取函数的元数据呢?

如果您正在谈论在运行时获取 function 参数类型,那么在撰写本文时是不可能的,因为 TypeScript 由于转译期间的类型擦除而不支持此功能。 换句话说,一旦 TypeScript 被编译成 JavaScript,类型信息就会被丢弃。

但是,如果您正在谈论获取 function 参数的类型compile-time ,那么可以使用Conditional Type 答案可以在https://stackoverflow.com/a/51851844/6587634找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM