Value declared with a {type: String} but no default value behave like they have a default value
Consider the following values :
static values = {
foo: {type: String},
bar: String
}
If both values are un-set, the following will happen
this.hasFooValue // true
this.hasBarValue // false
Looks like it comes from here :
stimulus/src/core/value_properties.ts
Line 55 in e6f1887
| return this.data.has(key) || definition.hasCustomDefaultValue |
stimulus/src/core/value_properties.ts
Lines 213 to 215 in e6f1887
| get hasCustomDefaultValue() { | |
| return parseValueTypeDefault(typeDefinition) !== undefined | |
| }, |
This is beyond my knowledge but it looks like there is a mixup about what is passed to parseValueTypeDefault