Added type-level mapping between aliases and nodes that have that alias. #9110
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.
Problem
The TypeScript types for
Visitor
in@babel/traverse
do not allow node aliases as properties. These cannot be added with the current contents of the auto-generated TypeScript definitions for@babel/types
.Solution
If
@babel/types
had a type-level mapping between aliases and the node types that have those aliases, e.g:Then the
Visitor
type in the TypeScript definitions can be intersected with the following type:This would then allow using aliases as
Visitor
properties when using TypeScript.This PR adds such an
Aliases
type.Concerns
d.ts
files is not set up. If tests are required then I can set this infrastructure up.$ObjMap
. Can somebody confirm what the situation with flow definitions for@babel/traverse
are and whether this would be a useful addition to the flow types?