Как получить типы параметров функции - PullRequest
0 голосов
/ 07 мая 2020

Я могу легко получить типы параметров метода с помощью ReflectAPI :

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

, но когда я пытаюсь получить типы параметров функции, он всегда возвращает undefined. Я пробовал использовать эти примерные функции:

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

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

И еще я читал, что TypeScript испускает метаданные только тогда, когда вы украшаете класс и метод. Итак, как мне получить метаданные функции?

1 Ответ

0 голосов
/ 07 мая 2020

Если вы говорите о получении типа параметра функции при времени выполнения , это невозможно во время написания, поскольку TypeScript не поддерживает это из-за стирания типа во время транспиляции. Другими словами, информация о типе отбрасывается после компиляции TypeScript в JavaScript.

Однако, если вы говорите о получении типа параметра функции времени компиляции , то это возможно с условным типом . Ответ можно найти на { ссылка }

...