TypeScript 7 VS Code extension: a workspace "typescript" 7.x package is not detected, only "@typescript/native-preview", which is no longer published
Maintainers usually reply within 1 day
@jakebailey is already working on this.
Since Oct 6, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript, vscode
- Domain
- developer-experience, tooling
Research direction
Start in packages/vscode-typescript/src/session.ts, especially findWorkspaceNativePreviewPackages, and inspect how promptUseWorkspaceVersion and promptSelectVersion consume its results. Compare the existing @typescript/native-preview detection with the typescript package and pathHasTsserverJs. Done means a TypeScript 7+ workspace package is detected, the workspace prompt and version picker offer it, and the extension selects that compiler.
Written by the indexing model from the issue text.
Description
The TypeScript 7 extension finds a workspace's own TypeScript 7 only in node_modules/@typescript/native-preview. That package was last published on 2026-07-07 (7.0.0-dev.20260707.2). TypeScript 7 now ships as typescript: [email protected] came out the next day, and the 7.1 nightlies ship as typescript@next (7.1.0-dev.20260930.4 today). So a project that installs TypeScript 7 the current way runs the extension's bundled compiler instead of its own. Nothing tells the user, and the only fix is to write a tsdk setting by hand.
Versions: TypeScript 7 extension 1.0.1, VS Code 1.140.0, macOS.
Repro
- In an empty folder, run
npm install -D typescript@nextand addmain.tswithexport const n: number = 1;. - Open the folder in VS Code with the TypeScript 7 extension installed, and open
main.ts. No setting is needed: on its first start, the extension turns TypeScript 7 on by itself (it writes"js/ts.experimental.useTsgo": trueinto the user settings). If TypeScript 7 was turned off later, run TypeScript: Enable TypeScript 7 Language Server.
Expected: the extension offers the workspace's TypeScript, as it does for @typescript/native-preview: the "This workspace has TypeScript 7 installed" prompt, and Use Workspace Version in TypeScript: Select TypeScript Version.
Actual: no prompt, and the server runs the extension's own compiler (7.0.2), not node_modules/typescript (7.1):
…/extensions/typescriptteam.native-preview-1.0.1-darwin-x64/lib/tsc --lsp --stdio
With "js/ts.tsdk.path": "node_modules/typescript", the same project runs the workspace compiler. So only the detection is missing: resolveTsdkPathToExe already accepts a typescript package (bin tsc).
Where
In packages/vscode-typescript/src/session.ts (main at 43521c80), findWorkspaceNativePreviewPackages checks only node_modules/@typescript/native-preview. Both promptUseWorkspaceVersion and the version picker (promptSelectVersion) use it.
Suggestion
Also detect node_modules/typescript when it is TypeScript 7 or newer. pathHasTsserverJs already tells a TypeScript 5 or 6 package apart from a TypeScript 7 one.
Why it matters
- The editor and the project's
tsc(CLI, CI) then run the same compiler. - Features that need a 7.1 nightly, such as content mappers with
--runExternalCode, now need either the TypeScript 7 Nightly extension or a hand-writtentsdksetting. The Nightly extension applies to every workspace and changes daily. Thetsdksetting is easy to miss, because the extension never mentions it.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 16.4k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 149
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/TypeScript
-
Class names `eval` and `arguments` are not reported as invalid strict mode bindingsPossibly taken @dmety claimed this 4 days ago. OpenBug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoft/TypeScript#64661 ·
Maintainers usually reply within 1 day
-
Non-enum CLI options with multiple values separated by comma and space aren't whitespace trimmedPossibly taken @RyanCavanaugh claimed this 5 days ago. OpenBug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoft/TypeScript#64618 · 1 assignee ·
Maintainers usually reply within 1 day
-
`EFNoLeadingComments` suppresses synthesized leading comments in tsgo; Strada only suppresses source commentsPossibly taken @weswigham claimed this 12 days ago. OpenNeeds Investigation
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
microsoft/TypeScript#64453 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
enhance: Add tests for premature caching of contextual parameter typesPossibly taken @luchenxu73 claimed this 26 days ago. OpenPossible Improvement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
microsoft/TypeScript#64278 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
dom.generated.d.ts is missing from this repo while still referenced in the docsMay be free again @seanxuu claimed this 39 days ago, and no pull request is open. OpenDocs
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
microsoft/TypeScript#64118 · 1 comment ·
Maintainers usually reply within 1 day
All issues in microsoft/TypeScript
Similar issues
-
docs(prompt): filer socket fragment hardcodes an issue-intent cap of 8 that Chore runs overrideOpenagent-butler-finding chore
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jordansmall/spindrift#5128 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Maintainers usually reply within 2 days
-
License GOtome under Apache 2.0 instead of AGPL-3.0Possibly taken @praetorianer777 claimed this today. Openarea:workflow documentation
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
praetorianer777/GoTome#212 ·
Maintainers usually reply within 1 day
-
ci: pin Go version in Build and Unit Test workflows (>=1.26.6 floats to 1.27.2 and breaks golangci-lint)Possibly taken @leninmehedy claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
hashgraph/solo-weaver#1255 ·
Maintainers usually reply within 1 day
-
area/infra backlog type/chore
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
praetorianer777/Stator#374 ·
Maintainers usually reply within 1 day