Есть ли какие-либо предложения TC39 по вызову функции, если какой-либо аргумент правдив? - PullRequest
0 голосов
/ 12 июля 2020

Итак, это предложение этапа 1 для оператора конвейера:

https://github.com/tc39/proposal-pipeline-operator

value |> func, что по сути является func(value)

What Я бы хотел превратить следующий код в один лайнер:

const collision = howDidTheyCollide(entityA, entityB);
if (!!collision) handleCollision(entityA, entityB, collision);

Я хочу, чтобы синтаксис вызывал функцию, только если аргумент правдив. Не нужно задействовать оператора конвейера.

Предположим, что ?> будет передавать функцию только в том случае, если значение истинно, я бы вообразил что-то вроде:

howDidTheyCollide(entityA, entityB) ?> handleCollision(entityA, entityB, ?)

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

[entityA, entityB] |> howDidTheyCollide ?> handleCollision

Другой потенциал - что-то вроде handleCollision(howDidTheyCollide(a, b)?) где? представляет Don't call this function, unless this is truthy Знак вопроса также может быть в начале функции, чтобы представить Don't call this function if ANY arguments are falsey

РЕДАКТИРОВАТЬ: Просмотрите список проблем оператора конвейера, и я нашел это отличное предложение (тоже такой же синтаксис: p ): https://github.com/tc39/proposal-pipeline-operator/issues/159#issuecomment -554463586

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...