fix(types): give explicit type to empty arrays #7557
Merged
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.
Description
Fix types of some places where empty arrays with implicit type would resolve to
never[]
type instead ofany[]
and cause TypeScript errors.Motivation and Context
Running a simple TypeScript project with Vuetify was displaying 5 errors regarding Vuetify types, see below the screenshots.
Screenshots of errors
Weirdly, in editor, we can't see these errors in Vuetify source code but only inside a TS project using Vuetify under
node_modules/vuetify/src/util/{file}.ts
(it's probably due to sometsconfig.json
options).In TypeScript, empty arrays that have no explicit types are resolving to the type
never[]
, so pushing anything (even ofany
type) in to this array leads to a type error"Argument of type 'any' is not assignable to parameter of type 'never'."
It can be easily fixed by explicitly defining the array type as
any[]
.Sources :
microsoft/TypeScript#9976
microsoft/TypeScript#9976 (comment)
How Has This Been Tested?
Locally in the project I had the 5 errors (seen on screenshots). These changes fixed all of them.
Types of changes
Checklist:
master
for bug fixes and documentation updates,dev
for new features and breaking changes).