# AUR0152

## Error Message

`AUR0152: Expression error: spread operator is not supported: "{{expression}}"`

Where `{{expression}}` is the expression containing the spread operator (`...`).

## Description

Aurelia’s binding expression parser does not support the JavaScript spread operator (`...`) inside template/binding expressions.

## Example Trigger

```html
<!-- ❌ Spread in binding expression -->
<div textcontent.bind="[...items].length"></div>
<button click.trigger="save(...args)"></button>
```

## Solution / Workarounds

* Move spread usage into view-model code (methods/getters).
* Use non-spread alternatives (for example `concat`, `slice`, or explicit arguments).

```ts
export class MyVm {
  items: unknown[] = [];

  get itemsCopy() {
    return this.items.slice();
  }

  saveAll(args: unknown[]) {
    return this.saveMany(args);
  }

  private saveMany(args: unknown[]) {/* ... */}
}
```

```html
<!-- ✅ Use view-model helpers -->
<div textcontent.bind="itemsCopy.length"></div>
<button click.trigger="saveAll(args)"></button>
```

## Troubleshooting

* Search your templates for `...` inside `${...}`, `.bind`, `.trigger`, `.delegate`, etc.
* Move spread expressions into view-model functions/getters.
