Remove index signature from CSSProperties #12988
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This allows for actually using strongly typed hyphen properties in CSS. In the current version, the comment above it is wrong. This was likely copied from the React types and never fixed to reflect the fact that the index signature was included back: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts#L1577-L1584
The reason for including this signature is not clear to me and doesn't appear to be in the code history. Does the project require some hyphen properties to be available? In that case, then Vue should define those explicitly and I can make the changes in this PR. Otherwise, this index signature makes the types measurably worse for everyone else using Vue's types in their own projects with strict CSS property types.
Notably, this also differs from Vue's own guide on CSSProperties: https://vuejs.org/api/utility-types.html#cssproperties
With the current implementation, the instructions on that documentation page are essentially useless, no one would ever need them (unless they're doing something like Houdini and adding new non-hyphen CSS properties).
What kind of change does this PR introduce? (check at least one)
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing applications:
Applications relying on the index signature that currently allows all hyphen properties will need to follow the Vue guide for updating CSSProperties: https://vuejs.org/api/utility-types.html#cssproperties
The PR fulfills these requirements:
main
branch for v2.x (or to a previous version branch)fix #xxx[,#xxx]
, where "xxx" is the issue number)If adding a new feature, the PR's description includes:
Other information: