簡體   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