Skip to content

Watch for TypeScript 7 support in vue-tsc/Volar, then lift the typescript hold #49

Open

Description

@wormeyman

Third of the migration-shaped holds, alongside #44 (Verify/xunit) and #47 (WebApp OpenAPI). Unlike those two, this one is gated on upstream rather than on work in this repo, so it is a watch item rather than a plan.

What is held

src/vue/package.json has typescript: ^6.0.3, and .github/renovate.json5 holds it at allowedVersions: "<7.0.0".

Why

TypeScript 7 is the Go rewrite. It does not ship the programmatic compiler API that vue-tsc/Volar embeds, so Vue template type-checking breaks - and vue-tsc is load-bearing here: npm run build runs vue-tsc before vite build, so this is a build-time dependency, not just an editor concern.

The trap worth knowing. vue-tsc's peer range is an open >=5.0.0, which would happily install TypeScript 7 without complaint. A permissive peer range is not the same as support. Without the Renovate hold, a bot would propose 6.x -> 7.x on that basis and the peer range would not stop it.

Unlock condition

Both of these, together:

  1. TypeScript 7.1 ships the programmatic compiler API.
  2. vue-tsc/Volar announces support for it.

Neither is in this repo's control. The official TS 7 migration story is a dual-install alias, which is not something to adopt here while vue-tsc cannot type-check .vue files against it.

Expected cost when it unblocks

Small - the estimate is roughly a 15-minute bump, since nothing in this codebase depends on TS internals directly. The hold exists because of the toolchain underneath, not because of our own code. That asymmetry is the reason this is worth tracking rather than just re-deriving it every time the bot proposes it.

Done when

typescript and vue-tsc are both current, the <7.0.0 ceiling is removed from .github/renovate.json5, and npm run build type-checks clean.

References

Activity

  1. wormeyman commented on Oct 21, 2026

    @wormeyman
    CollaboratorAuthor

    Status check, 2026-10-20: the first unlock condition is close, but the second isn't met.

    1. TS 7.1 API: in beta. typescript@7.1.0-beta was published to npm today. 7.1 is the release meant to bring the new programmatic API. latest is still 7.0.2.
    2. vue-tsc/Volar support: not yet. The stable vue-tsc 3.3.13, also out today, has nothing about TS 7. Support is being built in an open v4 alpha PR, feat: content mapper (v4 alpha) vuejs/language-tools#6170 ("content mapper"). Bug reports against it are still coming in (content-mapper: packaged X.vue shadows its shipped X.vue.d.ts vuejs/language-tools#6286, #6287, #6288, all filed today).

    So the hold stays. Lift it once TS 7.1 is final and a vue-tsc release says it supports it, not on the beta. MapWebUI has the same hold (its typescript Renovate rule is enabled: false, with a note to revisit at 7.1 by hand), so the same check applies there.

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