Как вы проверяете, нужна ли функция в JavaScript для аргументов?Как проверить, требует ли функция аргументов?
function functionWithArgs(arg1, arg2) {...}
function functionWithoutArgs() { /* I will return a function here */ }
Я, если приезд функция имеет какие-либо параметры через ES7 декораторов, так что я не знаю имя функции при проверке их.
Внутри декоратора
// If the function has arguments, use descriptor.value without invoking it
if (descriptor.value.HAS_ARGUMENTS) descriptor.value;
// If the function has no arguments, invoke it as it will return a function with arguments
else descriptor.value();
Хотя я использую ES7 декораторов, этот вопрос должен быть в состоянии ответить без каких-либо знаний ES7.
UPDATE: Я знаю, что я могу сделать что-то вроде if (descriptor.value() === 'undefined')
, чтобы определить, возвращает ли функция любое значение, но это не всегда может быть дело в возвращаемой функции.
Просто для справки нет такого понятия, как ES7 декораторов. Спецификация ES2016 (ES7) уже завершена, а декораторы по-прежнему представляют собой всего лишь предложение [stage-2] (https://github.com/tc39/proposal-decorators). –
И вы не можете знать, нужны ли функции * для аргументов *; просто ли он может их принять. – Utkanos
@DanPrince Я не упомянул, что на самом деле я использую TypeScript, но я не хотел классифицировать это как вопрос TypeScript для охвата более широкой аудитории. И ответ от Нины позволил мне использовать его. – borislemke