Add support for TS type-only imports and exports #532
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.
Fixes #520
The PR #523 already added parsing support for type-only import and export
syntax, and there was already support for removing
import type
from Flow, sothe only new logic was to fully support
export type
. The implementation hereis a little ugly; Flow's version sets the tokens as type tokens, whereas the TS
version sets the types as regular tokens and removes them at transform type.
This seems to be necessary to follow the behavior that
export type
statementsdo not result in the imported value being elided.
Ideally, Sucrase would support the
importsNotUsedAsValues
TS preference insome way, but for now, it keeps the old behavior of eliding type-only imports.
The setting
importsNotUsedAsValues=error
should make the distinctionirrelevant anyway, so it seems low priority to support.