runem / lit-analyzer

Monorepository for tools that analyze lit-html templates
MIT License
319 stars 36 forks source link

[no-complex-attribute-binding] Triggers when assigning serializable values to properties that include both objects and non-objects #345

Open rictic opened 9 months ago

rictic commented 9 months ago

e.g. <sl-radio value="0"> when value has type unknown, we produce the diagnostic:

You are assigning the primitive '0' to a non-primitive type unknown. Use '.' binding instead?

This isn't ideal, because this code should work fine (assuming that value can deserialize the attribute value '0', which I think is a reasonable responsibility to put on it) and my guess is that a static attribute will be cheaper than a dynamic property set to a constant. Certainly cheaper on update, since it's one fewer step to take.

jpzwarte commented 8 months ago

The workaround for now is to turn these specific checks off in the vscode settings:

  "lit-plugin.rules.no-complex-attribute-binding": "off",
  "lit-plugin.rules.no-incompatible-type-binding": "off"