Summary
Track the conditions and verification work required before VoteCatcher can move its frontend from TypeScript 6 to TypeScript 7.
TypeScript 7.0 is a native compiler with substantial performance gains, but it has no stable programmatic API. Svelte tooling embeds that API, so a direct upgrade currently breaks the project type-check workflow. Do not force peer-dependency overrides or replace bun run check while this issue is open.
Current State
- Frontend uses TypeScript 6.0.3, SvelteKit,
svelte-check, typescript-eslint, and Storybook Svelte.
bun run check is the authoritative full type check because it validates .svelte files.
- TypeScript 7.0.2 CLI can check the TS/JS subset, but native
tsc omits .svelte source files; it cannot be a merge gate.
- Svelte language-tools issue #3063 remains open. Maintainers confirm TS 7 is fundamentally incompatible with
svelte-check and svelte-package today.
Subtasks
Upstream Readiness
Isolated Compatibility Upgrade
Stability And Compatibility Gates
Rollout
Acceptance Criteria
References
Summary
Track the conditions and verification work required before VoteCatcher can move its frontend from TypeScript 6 to TypeScript 7.
TypeScript 7.0 is a native compiler with substantial performance gains, but it has no stable programmatic API. Svelte tooling embeds that API, so a direct upgrade currently breaks the project type-check workflow. Do not force peer-dependency overrides or replace
bun run checkwhile this issue is open.Current State
svelte-check,typescript-eslint, and Storybook Svelte.bun run checkis the authoritative full type check because it validates.sveltefiles.tscomits.sveltesource files; it cannot be a merge gate.svelte-checkandsvelte-packagetoday.Subtasks
Upstream Readiness
typescript-eslintversion accepts TypeScript 7; upgrade parser, plugin, and meta package together.svelte2tsxintegration support TypeScript 7, or document evidence that Storybook is isolated from the application compiler.Isolated Compatibility Upgrade
bun install --frozen-lockfileafter lockfile regeneration to prove deterministic resolution.tsconfig.jsonand generated SvelteKit config for TS 7 defaults and hard errors:rootDir, explicittypes,moduleResolution, removed legacy module targets,baseUrl, and import attributes.allowJsandcheckJs; TS 7 changes several JSDoc/Closure-style interpretations.Stability And Compatibility Gates
bun run checkreports no new errors and continues to check.sveltecomponents.bun run lintpasses.bun run test:unitpasses.bun run test:e2epasses.bun run buildpasses.bun run build-storybookpasses..svelte,.ts, and.jsfiles. Until Svelte supports the native TS language server, test with the TypeScript 7 VS Code language server disabled.Rollout
Acceptance Criteria
svelte-checkremains functional and authoritative for Svelte component diagnostics.References