Extended Diagnostics

Invalid Banana-in-Box

This diagnostic detects a backwards "banana-in-box" syntax for two-way bindings.

      
<user-viewer ([user])="loggedInUser" />

What's wrong with that?

As it stands, ([var]) is actually an event binding with the name [var]. The author likely intended this as a two-way binding to a variable named var but, as written, this binding has no effect.

What should I do instead?

Fix the typo. As the name suggests, the banana ( should go inside the box []. In this case:

      
<user-viewer [(user)]="loggedInUser" />

Configuration requirements

strictTemplates must be enabled for any extended diagnostic to emit. invalidBananaInBox has no additional requirements beyond strictTemplates.

What if I can't avoid this?

This diagnostic can be disabled by editing the project's tsconfig.json file:

      
{  "angularCompilerOptions": {    "extendedDiagnostics": {      "checks": {        "invalidBananaInBox": "suppress"      }    }  }}

See extended diagnostic configuration for more info.