Skip to content

TypeScript 6.x.x bump #974

Open
Open

Description

TypeScript 6.0 Build Failure Analysis

The build is failing across all Node matrix versions (18.x, 20.x, 22.x) with two deprecation errors that TypeScript 6.0 now treats as hard errors:

Error 1: TS5107 — moduleResolution=node10 is deprecated

  • Source: Root tsconfig.json → "moduleResolution": "Node"
  • Inherited by: Every workspace package via packages/tsconfig.base.json
  • Fix: Update to "moduleResolution": "Node16" or "Bundler" in tsconfig.json

Error 2: TS5101 — baseUrl is deprecated

  • Source: Each workspace package's own tsconfig.json (e.g. packages/msgraph-sdk-users/tsconfig.json)
  • Current value: "baseUrl": "./" (used alongside paths for project references)
  • Fix: Remove baseUrl from all ~68 workspace tsconfigs. With moduleResolution: "Node16" or "Bundler", TypeScript resolves paths relative to the tsconfig location by default.

Recommended Changes

Option A — Proper migration (recommended):

  1. In tsconfig.json: change "moduleResolution": "Node" → "moduleResolution": "Node16" and "module": "ES6" → "module": "Node16"
  2. In all packages/*/tsconfig.json: remove the "baseUrl": "./" line
  3. Also consider removing "experimentalDecorators" and "emitDecoratorMetadata" from packages/tsconfig.base.json since these are deprecated in TS6 as well (TC39 decorators are now standard)

Option B — Quick unblock (temporary):
Add "ignoreDeprecations": "6.0" to the root tsconfig.json compilerOptions to suppress the errors. This buys time but the options will be removed in TypeScript 7.0.


Note: The baseUrl deprecation affects all ~68 workspace packages that follow the same tsconfig pattern. A script or bulk find-and-replace would be the most efficient approach for Option A.

Activity

  1. gavinbarron commented on Apr 14, 2026

    @gavinbarron
    Member

    I think that the only key gotcha with this upgrade is to ensure that we maintain the same output target so that the packages we deliver have no breaking changes.

    That said, we should prefer using the most futureproof options as possible, so bunder might be better than node16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions