Skip to content

Move the typescript package to 7 when typescript-eslint supports it #29

Description

@adamjohnwright

What is actually held

Not the TypeScript 7 compiler — the build, typecheck and watch already use it, installed as the alias typescript-7.

What is held is moving the package named typescript from 6.0.3 to 7. That package is the copy typescript-eslint loads, and it throws on TS >= 7:

Error: typescript-eslint does not support TS 7.0.

Bumping it would disable linting entirely while changing nothing about the build. typescript-eslint declares typescript: ">=4.8.4 <6.1.0", so 6.0.3 is the newest it accepts.

Upstream tracking issue: typescript-eslint/typescript-eslint#10940 (open as of 2026-09-14, against typescript-eslint 8.70.0).

Why linting is worth keeping

The type-aware rules found two genuine bugs on the pass that introduced them:

  • an async function handed to process.once, so a failed Neo4j driver close rejected with nobody listening
  • a rethrow of lastError, typed unknown, so a non-Error rejection reached callers as something they could not read .message off

Current arrangement

This is the side-by-side setup the TypeScript team documents. npm run check and CI typecheck with both compilers, so a disagreement between them fails a check rather than showing up as lint and build quietly diverging.

Scripts name the compiler by path rather than calling tsc, because both packages ship that binary and node_modules/.bin/tsc resolves to whichever npm linked last — observed as 7.0.2 after an incremental install and 6.0.3 after a clean npm ci on the same tree.

How to check whether it is time

npm info typescript-eslint version
gh api repos/typescript-eslint/typescript-eslint/issues/10940 -q .state

Then, on a branch:

npm uninstall typescript-7
npm install -D typescript@^7
# point build/typecheck/dev back at plain `tsc` in package.json
npm run check

When closing this

  • drop the typescript-7 alias
  • move typescript to 7
  • point build, typecheck, dev back at tsc
  • remove typecheck:lint-compiler — there is only one compiler again
  • remove the typescript ignore rule from .github/dependabot.yml
  • update the "Two TypeScript versions, on purpose" section of the README

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions