⬆️ Bump typescript from 5.8.3 to 5.9.3#322
Conversation
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.3. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](microsoft/TypeScript@v5.8.3...v5.9.3) --- updated-dependencies: - dependency-name: typescript dependency-version: 5.9.3 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
WalkthroughThe TypeScript devDependency is updated from version 5.8.3 to 5.9.3 in package.json. No other modifications to dependencies, configuration, or source code are present. Changes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touchesCaution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (1)
package.json(1 hunks)
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: Node.js v22.18.0+ enables "type stripping" by default, allowing direct execution of TypeScript files with `node file.ts` for erasable TypeScript syntax (types, interfaces, basic annotations). Earlier versions (v22.6.0+) require --experimental-strip-types flag, and v22.7.0+ added --experimental-transform-types for enums/namespaces. This eliminates the need for tools like jiti, tsx, or ts-node in many cases.
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: When reviewing Node.js projects with TypeScript, check if they're using Node.js v22.18.0+ with native TypeScript support before suggesting additional tools like jiti, tsx, or ts-node. If the code only uses erasable TypeScript syntax and Node.js version supports it, direct execution with `node file.ts` is the preferred modern approach.
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: Node.js native TypeScript support only works with erasable TypeScript syntax by default in v22.18.0+. Code using transformable syntax like enums, namespaces, or decorators still requires the --experimental-transform-types flag even in the latest versions.
Learnt from: NatoBoram
Repo: NatoBoram/based.ts PR: 125
File: package.json:43-43
Timestamp: 2025-09-02T22:22:01.549Z
Learning: In TypeScript projects, if `typescript/native-preview` is installed as a devDependency, the `tsgo` command is available and can be used in build scripts instead of `tsc` for experimental purposes.
Learnt from: NatoBoram
Repo: NatoBoram/based.ts PR: 137
File: .github/workflows/docs.yaml:22-28
Timestamp: 2025-10-27T06:50:26.562Z
Learning: In the NatoBoram/based.ts repository, use `latest` for Node.js and PNPM versions in GitHub Actions workflows rather than pinning specific versions. The project maintainer prefers to surface and fix breaking changes from new versions proactively instead of avoiding them.
Learnt from: CR
Repo: NatoBoram/gigachad.ts PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-11-26T23:02:30.482Z
Learning: dependabot/ branches are allowed for the user dependabot[bot]
Learnt from: CR
Repo: NatoBoram/bookmarklets PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-11-26T22:47:35.797Z
Learning: Allow dependabot/ branches for the user dependabot[bot] in addition to standard Git Flow branch naming
Learnt from: CR
Repo: NatoBoram/load_env PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-11-26T23:01:12.361Z
Learning: Branch names must follow Git Flow config: master/develop branches use 'main', features use 'feature/' prefix, bugfixes use 'bugfix/' prefix, releases use 'release/' prefix, hotfixes use 'hotfix/' prefix, support branches use 'support/' prefix, and version tags use 'v' prefix. Additionally, 'dependabot/' branches are allowed for dependabot[bot].
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: .github/workflows/node.js.yaml:42-42
Timestamp: 2025-09-11T04:19:52.123Z
Learning: In NatoBoram's repositories, the preference is to allow the fix job in CI workflows to auto-fix issues directly on the main branch when build failures occur, rather than restricting fixes to pull requests only. This is an intentional design decision to maintain a clean main branch through automatic remediation.
Learnt from: CR
Repo: NatoBoram/based.ts PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-11-26T22:59:47.091Z
Learning: Git Flow: Branch names must follow the configured prefixes - feature/, bugfix/, release/, hotfix/, support/, with master and develop mapped to 'main'. Additionally, dependabot/ branches are allowed for the dependabot[bot] user.
Learnt from: CR
Repo: NatoBoram/heroicons.svelte PR: 0
File: coderabbit-custom-pre-merge-checks-unique-id-file-non-traceable-F7F2B60C-1728-4C9A-8889-4F2235E186CA.txt:0-0
Timestamp: 2025-11-26T22:45:42.274Z
Learning: Git Flow: Branch names must follow the configured prefixes - feature/, bugfix/, release/, hotfix/, support/, or v for version tags, with master and develop branches mapped to main. Additionally, dependabot/ branches are allowed for dependabot[bot].
📚 Learning: 2025-09-11T04:16:20.121Z
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: Node.js v22.18.0+ enables "type stripping" by default, allowing direct execution of TypeScript files with `node file.ts` for erasable TypeScript syntax (types, interfaces, basic annotations). Earlier versions (v22.6.0+) require --experimental-strip-types flag, and v22.7.0+ added --experimental-transform-types for enums/namespaces. This eliminates the need for tools like jiti, tsx, or ts-node in many cases.
Applied to files:
package.json
📚 Learning: 2025-09-11T04:16:20.121Z
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: When reviewing Node.js projects with TypeScript, check if they're using Node.js v22.18.0+ with native TypeScript support before suggesting additional tools like jiti, tsx, or ts-node. If the code only uses erasable TypeScript syntax and Node.js version supports it, direct execution with `node file.ts` is the preferred modern approach.
Applied to files:
package.json
📚 Learning: 2025-09-11T04:16:20.121Z
Learnt from: NatoBoram
Repo: NatoBoram/neopaper-main PR: 1
File: package.json:14-15
Timestamp: 2025-09-11T04:16:20.121Z
Learning: Node.js native TypeScript support only works with erasable TypeScript syntax by default in v22.18.0+. Code using transformable syntax like enums, namespaces, or decorators still requires the --experimental-transform-types flag even in the latest versions.
Applied to files:
package.json
📚 Learning: 2025-10-27T06:50:26.562Z
Learnt from: NatoBoram
Repo: NatoBoram/based.ts PR: 137
File: .github/workflows/docs.yaml:22-28
Timestamp: 2025-10-27T06:50:26.562Z
Learning: In the NatoBoram/based.ts repository, use `latest` for Node.js and PNPM versions in GitHub Actions workflows rather than pinning specific versions. The project maintainer prefers to surface and fix breaking changes from new versions proactively instead of avoiding them.
Applied to files:
package.json
📚 Learning: 2025-10-03T04:01:12.024Z
Learnt from: CR
Repo: NatoBoram/gigachads.ts PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-10-03T04:01:12.024Z
Learning: Applies to **/package.json : Do not manually edit package.json dependencies; use pnpm commands
Applied to files:
package.json
📚 Learning: 2025-11-26T22:59:34.924Z
Learnt from: CR
Repo: NatoBoram/based.ts PR: 0
File: .github/instructions/vitest.instructions.md:0-0
Timestamp: 2025-11-26T22:59:34.924Z
Learning: Applies to **/*.test.ts : Import `afterAll`, `afterEach`, `describe`, `test`, and `vi` from 'vitest' for CLI command testing
Applied to files:
package.json
📚 Learning: 2025-11-26T22:59:34.924Z
Learnt from: CR
Repo: NatoBoram/based.ts PR: 0
File: .github/instructions/vitest.instructions.md:0-0
Timestamp: 2025-11-26T22:59:34.924Z
Learning: Applies to **/*.test.ts : Import `describe` and `test` from 'vitest'
Applied to files:
package.json
🔍 Remote MCP context7, exa, github
Based on the information I've successfully gathered, here's my summary of relevant context for reviewing this PR:
TypeScript 5.9.3 Upgrade Review Context
Release Quality & Stability
TypeScript 5.9.3 was released on October 1, 2025, with a note that the tag was recreated to point at the correct commit, but the npm package contained the correct content. No specific changes were made for TypeScript 5.9.2 (Stable), and TypeScript 5.9.3 includes fixes for reported issues in its milestone.
Major Features in TypeScript 5.9
TypeScript 5.9 introduces a minimal and updated tsc --init experience that generates a more concise tsconfig.json with only essential settings, support for import defer, support for --module node20, and improved DOM API descriptions.
Key Consideration: Type Inference Changes
A potential area of concern: Between versions 5.8.3 and 5.9.2, TypeScript can no longer derive certain complex types and defaults to any instead in some scenarios. This is a known behavioral change that may affect projects with complex generic type patterns.
Project Context
The Leanish project is a Svelte-based web client with TypeScript configuration already in place. Since this is a straightforward devDependency version bump with no other changes, the upgrade should be low-risk, though the codebase should be tested to ensure no type inference regressions occur.
Related Activity
This dependency update has been applied across multiple related projects in the same organization (load_env, bookmarklets, and based.ts), indicating coordinated dependency management.,,,,
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build_android
| "tailwindcss": "^3.4.17", | ||
| "tslib": "^2.8.1", | ||
| "typescript": "5.8.3", | ||
| "typescript": "5.9.3", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
TypeScript 5.9.3 release notes breaking changes
💡 Result:
Short answer: There are no documented breaking changes specific to TypeScript 5.9.3. The TypeScript 5.9 release notes / announcement list the notable behavioral changes for 5.9 (type-argument inference, lib.d.ts changes, etc.), and the 5.9.3 tag is a patch with fixes — no separate breaking changes are listed for 5.9.3. [1][2]
Sources:
- TypeScript 5.9 release announcement / release notes (noting no changes since RC). [1]
- GitHub issues about the v5.9.3 release notes / tag formatting (shows v5.9.3 is a patch release and the release notes page was misformatted). [2]
🌐 Web query:
TypeScript 5.9 type inference changes defaults to any
💡 Result:
Short answer: No — TypeScript 5.9 did not change the language to “default everything to any.” It introduced changes to type-argument inference (to avoid leaking type variables) which can make some generic calls produce different inferred types or new errors unless you provide explicit type arguments. If a type parameter has a declared default, that default is used when inference can't choose; otherwise inference behaves as before (and may still fall back to any in positions where no candidate can be inferred). See the official notes and announcement. [1][2]
Sources:
- TypeScript 5.9 release notes. [1]
- TypeScript team announcement (blog). [2]
🏁 Script executed:
# Check if TypeScript 5.9.3 exists as a published version
curl -s https://registry.npmjs.org/typescript/5.9.3 | jq '.version, .dist.tarball' 2>/dev/null || echo "Version lookup via npm API"Repository: NatoBoram/Leanish
Length of output: 131
🏁 Script executed:
#!/bin/bash
echo "=== Running type check ==="
pnpm run checkRepository: NatoBoram/Leanish
Length of output: 363
Verify TypeScript 5.9 type-argument inference changes don't require code updates.
TypeScript 5.9 introduced changes to type-argument inference to avoid leaking type variables, which may require some generic call sites to provide explicit type arguments. Confirm the codebase compiles cleanly and the type checker produces no new errors with TypeScript 5.9.3.
🤖 Prompt for AI Agents
In package.json around line 126, the project bumped TypeScript to 5.9.3; verify
the new type-argument inference behavior by switching to TS 5.9.3 locally,
running a fresh install and a full typecheck (npm/yarn install then npx tsc
--noEmit), and address any new errors by adding explicit type arguments at
generic call sites that fail inference, widening or constraining generic
function signatures where they leak type variables, updating overloaded function
signatures to disambiguate inference, or introducing narrow casts/const
assertions only where necessary; after fixes re-run the typecheck and CI to
ensure the codebase compiles cleanly with no new TypeScript errors.
|
Superseded by #329. |
Bumps typescript from 5.8.3 to 5.9.3.
Release notes
Sourced from typescript's releases.
Commits
c63de15Bump version to 5.9.3 and LKG8428ca4🤖 Pick PR #62438 (Fix incorrectly ignored dts file fr...) into release-5.9 (#...a131cac🤖 Pick PR #62351 (Add missing Float16Array constructo...) into release-5.9 (#...0424333🤖 Pick PR #62423 (Revert PR 61928) into release-5.9 (#62425)bdb641a🤖 Pick PR #62311 (Fix parenthesizer rules for manuall...) into release-5.9 (#...0d9b9b9🤖 Pick PR #61978 (Restructure CI to prepare for requi...) into release-5.9 (#...2dce0c5Intentionally regress one buggy declaration output to an older version (#62163)5be3346Bump version to 5.9.2 and LKGad825f2Bump version to 5.9.1-rc and LKG463a5bfUpdate LKGYou can trigger a rebase of this PR by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Changelog by CodeRabbit
Upgrade TypeScript to 5.9.3 for improved developer experience, performance optimizations, and support for new ECMAScript module features.
Changed
typescriptfrom5.8.3to5.9.3inpackage.json