Repository navigation
Conversation
TypeScript 7 is the native (Go) compiler and does not ship a JS API. Following the upstream recommendation, `typescript` is aliased to `@typescript/typescript6` so tools that use the compiler API (typescript-eslint, ts-jest, ts-node, ts-json-schema-generator, Storybook) keep working, while `@typescript/native` provides the TypeScript 7 `tsc` used for type-checking. - Replace gulp-typescript with the TypeScript 7 `tsc` CLI in gulp tasks - Replace the removed `moduleResolution: node` with `bundler` in src/view - Declare `*.css` modules for side-effect CSS imports - Fix webview event handler types surfaced by the stricter resolution - Update the VS Code build task problem matcher Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c2c54892-58d8-42e7-940b-8a0e22f9fa6d
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Dual-compiler compatibility and build/watch behavior need end-to-end validation across supported platforms.
1 open finding
What changed in this PR
Upgrades the extension’s type-checking to TypeScript 7 while retaining TypeScript 6 for compiler-API tools.
Changes:
- Installs both compilers and replaces Gulp’s compiler-API checks with CLI execution.
- Updates webview module resolution, event types, and CSS declarations.
- Adapts VS Code build diagnostics to compiler output.
| File | Description |
|---|---|
| extensions/ql-vscode/src/view/types.d.ts | Declares CSS imports. |
| extensions/ql-vscode/src/view/tsconfig.json | Uses bundler module resolution. |
| extensions/ql-vscode/src/view/compare-performance/RenamingInput.tsx | Updates input-event types. |
| extensions/ql-vscode/src/view/compare-performance/RAPrettyPrinter.tsx | Infers the click-event type. |
| extensions/ql-vscode/src/stories/tsconfig.json | Includes CSS declarations. |
| extensions/ql-vscode/package.json | Adds compiler aliases and removes replaced dependencies. |
| extensions/ql-vscode/package-lock.json | Records updated dependencies. |
| extensions/ql-vscode/gulpfile.ts/view.ts | Reuses CLI type-checking. |
| extensions/ql-vscode/gulpfile.ts/typescript.ts | Implements CLI type-checking and simplifies cleanup. |
| .vscode/tasks.json | Uses the standard TypeScript problem matcher. |
Files not reviewed (1)
- extensions/ql-vscode/package-lock.json: Generated file
🧠 Review effort: Max
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| */ | ||
| export async function runTypeScriptCheck(project: string): Promise<void> { | ||
| const proc = spawn( | ||
| resolve(__dirname, "../node_modules/.bin/tsc"), |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Dependabot wants us to bump the Typescript version from 5.9.3 to 7.0.2: #4580. This causes a few breakages and copilot wasn't able to fix them. So I've had copilot create this PR from scratch to bump the version and fix all the things that need fixing.
The biggest change is that TypeScript 7.0 does not ship a JS compiler API, so following the official recommendation we install both 7.0 and 6.0 side by side:
typescriptis aliased to@typescript/typescript6(6.0.3), so tools that use the compiler API (typescript-eslint, ts-jest, ts-node, ts-json-schema-generator, Storybook) keep working.@typescript/nativeistypescript@7.0.2and provides thetscbinary used for all type-checking (npm run check-types, gulp build/watch).Other changes
gulp-typescript(which uses the TS API) with spawning the TS 7tscCLI; removedgulp-typescriptandansi-colors. Updated the VS Code Build task problem matcher for the new output format.src/view/tsconfig.json:moduleResolution: nodeis removed in TS 7, switched tobundler. This picks up packages'exportstypings and surfaced three incorrect event handler types inRenamingInput.tsxandRAPrettyPrinter.tsx, which are fixed.noUncheckedSideEffectImportsis now on by default, so addeddeclare module "*.css"(and included it in the stories tsconfig) for side-effect CSS imports.Notes for reviewers
.vscode/settings.jsontypescript.tsdkstill resolves to the TS 6 language server. Use the TypeScript 7 VS Code extension for TS 7 in the editor.