-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Open
Labels
Experimentation NeededSomeone needs to try this out to see what happensSomeone needs to try this out to see what happensIn DiscussionNot yet reached consensusNot yet reached consensusRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript
Milestone
Description
Background
In incremental scenarios, we need to understand the "shape" of a module to determine whether its dependencies also need to be checked; however, declaration files are expensive to generate. In cases where --declaration
isn't on, it can be wasteful to spend time on that.
Proposal
In some cases, it can be cheaper just to assume that a change to a module should trigger a re-check of its transitive dependencies - so we could consider the JavaScript output (or maybe even just the TypeScript input) to determine the initial shape, and then "graduate" to using the declaration files if they're referenced often enough.
- figure out the set of dependent modules. If the set of dependencies is "large", then use the
.d.ts
output as the shape; otherwise, use the.js
output - if a module gets changed often enough and it's using
.js
to determine shape, we switch to using its.d.ts
output to determine shape
Originally posted by @DanielRosenwasser in #41219 (comment)
intrnl
Metadata
Metadata
Assignees
Labels
Experimentation NeededSomeone needs to try this out to see what happensSomeone needs to try this out to see what happensIn DiscussionNot yet reached consensusNot yet reached consensusRescheduledThis issue was previously scheduled to an earlier milestoneThis issue was previously scheduled to an earlier milestoneSuggestionAn idea for TypeScriptAn idea for TypeScript