Skip to content

Conversation

@jakebailey
Copy link
Member

@jakebailey jakebailey commented Jan 30, 2026

For #62196

This flag does nothing if your target is ES2015+

TS 7.0 shouldn't have this flag because we won't support target below ES2015. Deprecate it now, though it is a shame we never had an error that said "don't set this, it doesn't do anything for you".

Copilot AI review requested due to automatic review settings January 30, 2026 21:50
@github-project-automation github-project-automation bot moved this to Not started in PR Backlog Jan 30, 2026
@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jan 30, 2026
@jakebailey
Copy link
Member Author

@typescript-bot test top400

@typescript-bot
Copy link
Collaborator

Looks like you're introducing a change to the public API surface area. If this includes breaking changes, please document them on our wiki's API Breaking Changes page.

Also, please make sure @DanielRosenwasser and @RyanCavanaugh are aware of the changes, just as a heads up.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 30, 2026

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started 👀 Results

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Deprecates the --downlevelIteration compiler option for TypeScript 6.0 (planned to stop functioning in 7.0), emitting a deprecation diagnostic unless silenced via ignoreDeprecations.

Changes:

  • Emit a deprecation diagnostic when downlevelIteration is enabled.
  • Mark downlevelIteration as @deprecated in the public CompilerOptions API surface.
  • Update test harness + baselines to account for the new deprecation error output.

Reviewed changes

Copilot reviewed 59 out of 60 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/compiler/program.ts Adds a deprecation diagnostic when downlevelIteration is enabled.
src/compiler/types.ts Marks downlevelIteration as @deprecated in CompilerOptions.
src/harness/evaluatorImpl.ts Sets ignoreDeprecations: "6.0" by default to prevent evaluator-based unit tests from failing on new deprecation errors.
tests/baselines/reference/api/typescript.d.ts Updates API baseline to include /** @deprecated */ on downlevelIteration.
tests/baselines/reference/sourceMapValidationVarInDownLevelGenerator.types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/sourceMapValidationVarInDownLevelGenerator.errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/restParameterInDownlevelGenerator(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/restParameterInDownlevelGenerator(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/forAwaitPerIterationBindingDownlevel(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/forAwaitPerIterationBindingDownlevel(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns02_ES5iterable(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns02_ES5iterable(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns01_ES5iterable(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns01_ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns01_ES5iterable(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyVariableDeclarationBindingPatterns01_ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns04_ES5iterable(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns04_ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns04_ES5iterable(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns04_ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns03_ES5iterable(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns03_ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns03_ES5iterable(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns03_ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns02_ES5iterable(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns02_ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns02_ES5iterable(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns02_ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns01_ES5iterable(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns01_ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/emptyAssignmentPatterns01_ES5iterable(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/emptyAssignmentPatterns01_ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringVariableDeclaration1ES5iterable.errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringParameterDeclaration7ES5iterable(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringParameterDeclaration7ES5iterable(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringParameterDeclaration3ES5iterable(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringParameterDeclaration3ES5iterable(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringParameterDeclaration1ES5iterable.errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringArrayBindingPatternAndAssignment4(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringArrayBindingPatternAndAssignment4(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/destructuringArrayBindingPatternAndAssignment1ES5iterable.errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/blockScopedBindingsInDownlevelGenerator(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/blockScopedBindingsInDownlevelGenerator(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/blockScopedBindingsInDownlevelGenerator(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/blockScopedBindingsInDownlevelGenerator(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/asyncArrowFunction11_es5(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/asyncArrowFunction11_es5(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/arrayLiteralSpreadES5iterable.errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of37(target=es5).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/ES5For-of37(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of37(target=es2015).types Updates type baseline output impacted by new option diagnostics.
tests/baselines/reference/ES5For-of37(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of36(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of36(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of35(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of35(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of34(target=es5).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of34(target=es2015).errors.txt Updates baseline to include new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of33(target=es5).errors.txt Adds baseline for new TS5101 deprecation diagnostic.
tests/baselines/reference/ES5For-of33(target=es2015).errors.txt Adds baseline for new TS5101 deprecation diagnostic.

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the top 400 repos with tsc comparing main and refs/pull/63071/merge:

Something interesting changed - please have a look.

Details

actualbudget/actual

3 of 7 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

packages/sync-server/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

packages/loot-core/tsconfig.api.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

better-auth/better-auth

21 of 22 projects failed to build with the old tsc and were ignored

packages/scim/tsconfig.json

colinhacks/zod

13 of 17 projects failed to build with the old tsc and were ignored

packages/tsc/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

packages/integration/fixtures/drizzle-zod/tsconfig.json

packages/integration/fixtures/ai-sdk/tsconfig.json

packages/bench/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

compiler-explorer/compiler-explorer

4 of 7 projects failed to build with the old tsc and were ignored

tsconfig.tests.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
    • Project Scope

tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
    • Project Scope

tsconfig.frontend.tests.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
    • Project Scope

tldraw/tldraw

29 of 33 projects failed to build with the old tsc and were ignored

apps/dotcom/zero-cache/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

upstash/context7

2 of 5 projects failed to build with the old tsc and were ignored

packages/sdk/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

vercel/swr

8 of 10 projects failed to build with the old tsc and were ignored

tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

e2e/test/tsconfig.json

  • error TS5101: Option 'downlevelIteration' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
    • Project Scope

@DanielRosenwasser
Copy link
Member

I wonder if it's worth deprecating specifically. If you're extending from a common tsconfig (e.g. Zod here), then the problem is more about any package that compiles with ES5, not with the current project.

@jakebailey
Copy link
Member Author

Ryan and I talked about this just now, and this is already true about any and all deprecated options, even more used ones.

You can do : null, but no option will save you when TS 7.0 hits.

This option just feels bad because it technically does nothing.

@jakebailey jakebailey force-pushed the deprecate-downlevelIteration branch from 1e31acc to af91582 Compare January 31, 2026 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Status: Not started

Development

Successfully merging this pull request may close these issues.

3 participants