Proposal: Support check types
For this code [1, '1', true, 'true'], there is no way to distinguish number/boolean and string (expect use [raw=], which is not safe).
I can see two solutions:
-
Treat quoted attribute value as string, otherwise as literal value
[value="1"]matches'1'not1,[value="true"]matches'true'nottrue, this can also prevent[value<2]unwanted matches sting'1'.I understand this will be a breaking change, but I still think worth to do it.
-
Add a new pseudo selector
:type([value], 'string')or something like this.
I'd favor the second approach myself, as I think the first approach would introduce a dynamic different from CSS selectors which have no semantic difference between quotes or no quotes.
Maybe we can support [value="1" number] like i and s in CSS Attribute selector?
Wow, I found a workaround Literal[value="1"][value.constructor.name="Number"] 😄