Pipeline operator (|>)

The experimental pipeline operator |> (currently at stage 1) pipes the value of an expression into a function. This allows the creation of chained function calls in a readable manner. The result is syntactic sugar in which a function call with a single argument can be written like this:

let url = "%21" |> decodeURI;

The equivalent call in traditional syntax looks like this:

let url = decodeURI("%21");


expression |> function

The value of the specified expression is passed into the function as its sole parameter.


Any valid expression.
Any function.


Chaining function calls

The pipeline operator can improve readability when chaining several functions.

const double = (n) => n * 2;
const increment = (n) => n + 1;

// without pipeline operator
double(increment(double(double(5)))); // 42

// with pipeline operator
5 |> double |> double |> increment |> double; // 42


Pipeline operator
The definition of 'Pipeline operator' in that specification.

Browser compatibility

BCD tables only load in the browser

See also