Как передать аргументы как внутренней, так и внешней функции в машинописном тексте? - PullRequest
2 голосов
/ 28 мая 2020

У меня есть функция, которая возвращает другую функцию. Мне нужно передать аргументы обеим функциям. Когда я пытаюсь это сделать, я могу передать только один аргумент, а не два. Как передать два аргумента в validatorRegex?

export const validatorRegex = (regex: RegExp | RegExp[]) => (value: string) =>
  Array.isArray(regex) ? regex.every((rx) => rx.test(value)) : regex.test(value);

1 Ответ

4 голосов
/ 28 мая 2020

validatorRegex - это то, что называется функцией curried . Вместо двух аргументов он принимает один аргумент и возвращает функцию, которая принимает другой аргумент. Вы можете назвать это так:

validatorRegex(/foo/)('bar')

Это сокращение от:

const f = validatorRegex(/foo/)
f('bar')
...