Reduce type instantiations in e.literal
#924
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.
TypeScript 5.4 introduced a pretty significant regression in type performance with the
e.literal
expression. The changes here are meant to be no-op performance improvements.Significant performance improvements observed in the latest benchmark tests:
e.literal: scalar
: -77.80%.e.literal: array literal
: -45.89%e.literal: named tuple literal
: -33.47%e.tuple: named tuple literal
: -20.70%e.literal: tuple literal
: -42.10%e.literal: array of tuples
: -35.18%Minor performance deltas were observed in other benchmarks, with most under 1% change from the baseline. Notably,
e.array: array of tuples
showed a -9.96% delta, andparams select
had a -6.34% delta.