43081j / eslint-plugin-lit

lit-html support for ESLint
120 stars 22 forks source link

feat: add a rule to ensure attribute is set to false when type is not serializable #208

Open jpradelle opened 1 month ago

jpradelle commented 1 month ago

I think it would be great to have a rule to forbid usage of attribute for a property if type is not natively convertible or if no converter is defined. Native convertible types are String, Number, Boolean, Object, Array : https://lit.dev/docs/components/properties/#conversion-type

This would be no warning

@property() foo;
@property({type: String) foo;
@property({type: Boolean) foo;
@property({type: Number) foo;
@property({type: Array) foo;
@property({type: Object) foo;
@property({type: Foo, converter: {fromAttribute: ..., toAttribute: ...}) foo;
@property({type: Foo, attribute: false) foo;

And this would be warning

@property({type: Function) foo;
@property({type: Foo) foo;