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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The type definition uses
anyinstead of properly supporting functional components, which disables TypeScript type checking and doesn't match the PR description that states it should "accept Function".View Details
Analysis
Icon component type definition loses TypeScript type safety
What fails:
IconProps.nametype definition usesstring | anyinstead ofstring | Component, which disables TypeScript type checking and allows invalid values like numbers and booleans to be passed without errors.How to reproduce:
Result with current
anytype: TypeScript allows any value to be assigned tonamewithout warnings, including123,true, or other invalid values.Expected behavior: TypeScript should reject non-component values. Using
string | Component(from Vue's official type exports) provides proper type safety for component definitions.Note: The component logic at lines 25-26 correctly handles both strings and components at runtime with
typeof name === 'string'checks, but TypeScript type safety was removed when the prop type was changed fromstring | Component(commit 96dbce7) tostring | any(commit 3dc5ab9). This fix restores proper type checking while maintaining backward compatibility with the existing runtime behavior.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll put back
Componentwhen possible!