ns-binding-expressions
Binding expressions: allow-list, two-way default, write-back hazard
What you may write inside {{ }}
Expressions are parsed with a real JS parser against an allow-list of node types: array/object literals, template literals, member access (incl. optional chaining), calls, new, ternaries, unary + - ! void typeof, arithmetic/comparison operators, and logical && || ??.
Not allowed (throws Invalid expression syntax): arrow functions, function expressions, assignments, ++/--, await, comma sequences. {{ items.filter(i => i.done) }} fails — compute it in the view model and bind the result.
Special keys: $value (the whole binding context — the implicit source for bare expressions), $parent (one level up), $parents['StackLayout'] / $parents[0] (ancestor View by class name or depth — a view lookup, not a data lookup).
| is the converter pipe, never bitwise-or:
<Label text="{{ createdAt | dateConverter('DD.MM.YYYY') }}" />