Skip to content

Default target to "latest standard", deprecate ES5 - #63067

Merged
Jake Bailey (jakebailey) merged 11 commits into
microsoft:mainfrom
jakebailey:es-current-year
Jan 31, 2026
Merged

Default target to "latest standard", deprecate ES5#63067
Jake Bailey (jakebailey) merged 11 commits into
microsoft:mainfrom
jakebailey:es-current-year

Conversation

@jakebailey

@jakebaileyJake Bailey (jakebailey) commented Jan 30, 2026

Copy link
Copy Markdown
Member

target now defaults to ScriptTarget.LatestStandard, which is an alias to the most recent standardized ES version, currently ES2024 (until we add ES2025).

target=ES5 is now deprecated.

#63066 got most tests ready, but a few unit tests still needed to be updated. Individual commits may be a better way to review this.

Fixes#62196
Fixes#62198

@typescript-bot

Copy link
Copy Markdown
Contributor

Thanks for the PR! It looks like you've changed the TSServer protocol in some way. Please ensure that any changes here don't break consumers of the current TSServer API. For some extra review, we'll ping Sheetal Nandi (@sheetalkamat), Matt Bierner (@mjbvz), and Joaquin Jares (@joj) for you. Feel free to loop in other consumers/maintainers if necessary.

@typescript-bot

Copy link
Copy Markdown
Contributor

Looks like you're introducing a change to the public API surface area. If this includes breaking changes, please document them on our wiki's API Breaking Changes page.

Also, please make sure Daniel Rosenwasser (@DanielRosenwasser) and Ryan Cavanaugh (@RyanCavanaugh) are aware of the changes, just as a heads up.

@jakebailey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) test it
TypeScript Bot (@typescript-bot) pack this

@typescript-bot

TypeScript Bot (typescript-bot) commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
pack this✅ Started✅ Results
test top400✅ Started👀 Results
user test this✅ Started👀 Results
run dt✅ Started👀 Results
perf test this faster✅ Started👀 Results

Comment threadsrc/compiler/types.ts Outdated
@typescript-bot

TypeScript Bot (typescript-bot) commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
"devDependencies": {
"typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/167004/artifacts?artifactName=tgz&fileId=EF769C50B14300245DEC1C19259502941AC541B769FEE5839095048E28F6936902&fileName=/typescript-6.0.0-insiders.20260130.tgz"
}
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@6.0.0-pr-63067-4".;

computeValue: (compilerOptions): ModuleKind => {
return typeof compilerOptions.module === "number" ?
compilerOptions.module :
_computedOptions.target.computeValue(compilerOptions) >= ScriptTarget.ES2015 ? ModuleKind.ES2015 : ModuleKind.CommonJS;

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a later PR, I will update this to set other ModuleKinds based on the target.

This comment was marked as resolved.

@typescript-bot

This comment was marked as resolved.

@jakebailey

This comment was marked as resolved.

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the user tests with tsc comparing main and refs/pull/63067/merge:

There were infrastructure failures potentially unrelated to your change:

  • 1 instance of "Package install failed"
  • 1 instance of "Git clone failed"

Otherwise...

Something interesting changed - please have a look.

Details

acorn

/mnt/ts_downloads/_/m/acorn/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/acorn/index.ts(1,1)

adonis-framework

/mnt/ts_downloads/_/m/adonis-framework/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/adonis-framework/index.ts(1,1)

ajv

/mnt/ts_downloads/_/m/ajv/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/ajv/index.ts(1,1)

antd

/mnt/ts_downloads/_/m/antd/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/antd/index.ts(1,1)

assert

/mnt/ts_downloads/_/m/assert/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/assert/index.ts(1,1)

async

/mnt/ts_downloads/_/m/async/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/async/index.ts(1,1)

axios

/mnt/ts_downloads/_/m/axios/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/axios/index.ts(1,1)

bcryptjs

/mnt/ts_downloads/_/m/bcryptjs/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/bcryptjs/index.ts(1,1)

bignumber.js

/mnt/ts_downloads/_/m/bignumber.js/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/bignumber.js/index.ts(1,1)

bluebird

/mnt/ts_downloads/_/m/bluebird/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/bluebird/index.ts(1,1)

clear-require

/mnt/ts_downloads/_/m/clear-require/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/clear-require/index.ts(1,1)

clone

/mnt/ts_downloads/_/m/clone/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/clone/index.ts(1,1)

content-disposition

/mnt/ts_downloads/_/m/content-disposition/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/content-disposition/index.ts(1,1)

debug

/mnt/ts_downloads/_/m/debug/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/debug/index.ts(1,1)

discord.js

/mnt/ts_downloads/_/m/discord.js/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/discord.js/index.ts(1,1)

electron

/mnt/ts_downloads/_/m/electron/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/electron/index.ts(1,1)

eventemitter2

/mnt/ts_downloads/_/m/eventemitter2/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/eventemitter2/index.ts(1,1)

eventemitter3

/mnt/ts_downloads/_/m/eventemitter3/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/eventemitter3/index.ts(1,1)

firebase

/mnt/ts_downloads/_/m/firebase/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/firebase/index.ts(1,1)

follow-redirects

/mnt/ts_downloads/_/m/follow-redirects/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/follow-redirects/index.ts(1,1)

fp-ts

tsconfig.json

  • [NEW] error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

tsconfig.build-es6.json

  • [NEW] error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

examples/tsconfig.json

  • [NEW] error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

dtslint/tsconfig.json

  • [NEW] error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

graceful-fs

/mnt/ts_downloads/_/m/graceful-fs/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/graceful-fs/index.ts(1,1)

immutable

/mnt/ts_downloads/_/m/immutable/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/immutable/index.ts(1,1)

isobject

/mnt/ts_downloads/_/m/isobject/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/isobject/index.ts(1,1)

jimp

/mnt/ts_downloads/_/m/jimp/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/jimp/index.ts(1,1)

jsonschema

/mnt/ts_downloads/_/m/jsonschema/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/jsonschema/index.ts(1,1)

keycode

/mnt/ts_downloads/_/m/keycode/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/keycode/index.ts(1,1)

localforage

/mnt/ts_downloads/_/m/localforage/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/localforage/index.ts(1,1)

lodash

/mnt/ts_downloads/_/m/lodash/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/lodash/index.ts(1,1)

log4js

/mnt/ts_downloads/_/m/log4js/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/log4js/index.ts(1,1)

minimatch

/mnt/ts_downloads/_/m/minimatch/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/minimatch/index.ts(1,1)

mobx

/mnt/ts_downloads/_/m/mobx/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/mobx/index.ts(1,1)

moment

/mnt/ts_downloads/_/m/moment/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/moment/index.ts(1,1)

mqtt

/mnt/ts_downloads/_/m/mqtt/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/mqtt/index.ts(1,1)

npmlog

/mnt/ts_downloads/_/m/npmlog/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/npmlog/index.ts(1,1)

octokit-rest

/mnt/ts_downloads/_/m/octokit-rest/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/octokit-rest/index.ts(1,1)

portfinder

/mnt/ts_downloads/_/m/portfinder/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/portfinder/index.ts(1,1)

protobufjs

/mnt/ts_downloads/_/m/protobufjs/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/protobufjs/index.ts(1,1)

redux

/mnt/ts_downloads/_/m/redux/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/redux/index.ts(1,1)

reselect

/mnt/ts_downloads/_/m/reselect/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/reselect/index.ts(1,1)

rxjs

/mnt/ts_downloads/_/m/rxjs/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/rxjs/index.ts(1,1)

should

/mnt/ts_downloads/_/m/should/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/should/index.ts(1,1)

sift

/mnt/ts_downloads/_/m/sift/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/sift/index.ts(1,1)

soap

/mnt/ts_downloads/_/m/soap/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/soap/index.ts(1,1)

sugar

/mnt/ts_downloads/_/m/sugar/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/sugar/index.ts(1,1)

tslint

/mnt/ts_downloads/_/m/tslint/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/tslint/index.ts(1,1)

uglify-js

/mnt/ts_downloads/_/m/uglify-js/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/uglify-js/index.ts(1,1)

url-search-params

/mnt/ts_downloads/_/m/url-search-params/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/url-search-params/index.ts(1,1)

util

/mnt/ts_downloads/_/m/util/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/util/index.ts(1,1)

vue

/mnt/ts_downloads/_/m/vue/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/vue/index.ts(1,1)

vuex

/mnt/ts_downloads/_/m/vuex/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/vuex/index.ts(1,1)

webpack

tsconfig.hot.json

  • [NEW] error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

xlsx

/mnt/ts_downloads/_/m/xlsx/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/xlsx/index.ts(1,1)

xpath

/mnt/ts_downloads/_/m/xpath/tsconfig.json

  • [NEW] error TS1202: Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
    • /mnt/ts_downloads/_/m/xpath/index.ts(1,1)

@jakebailey

This comment was marked as outdated.

@typescript-bot

This comment was marked as outdated.

@typescript-bot

This comment was marked as outdated.

@typescript-bot

This comment was marked as outdated.

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the top 400 repos with tsc comparing main and refs/pull/63067/merge:

Something interesting changed - please have a look.

Details

apitable/apitable

14 of 15 projects failed to build with the old tsc and were ignored

packages/databus-client/tsconfig.json

  • error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

basarat/typescript-book

10 of 15 projects failed to build with the old tsc and were ignored

code/async-await/es5/tsconfig.json

  • error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

compiler-explorer/compiler-explorer

4 of 7 projects failed to build with the old tsc and were ignored

tsconfig.frontend.tests.json

  • error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
    • Project Scope

faker-js/faker

1 of 2 projects failed to build with the old tsc and were ignored

cypress/tsconfig.json

  • error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

radix-ui/primitives

64 of 68 projects failed to build with the old tsc and were ignored

cypress/tsconfig.json

  • error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM, I am OK with any proposed name for the "current" target version

@github-project-automationgithub-project-automationBot moved this from Not started to Waiting on author in PR BacklogJan 30, 2026
@jakebaileyJake Bailey (jakebailey) changed the title Default target to "current year", deprecate ES5Default target to "latest standard", deprecate ES5Jan 30, 2026
@typescript-bot

This comment was marked as outdated.

@jakebailey

This comment was marked as outdated.

@typescript-bot

This comment was marked as outdated.

@typescript-bot

This comment was marked as outdated.

@jakebailey

This comment was marked as outdated.

@jakebailey

Copy link
Copy Markdown
MemberAuthor

TypeScript Bot (@typescript-bot) run dt

@typescript-bot

TypeScript Bot (typescript-bot) commented Jan 31, 2026

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
run dt✅ Started✅ Results

);
const reportDiagnostic = ts.createDiagnosticReporter(system);
const parsedConfig = ts.parseConfigFileWithSystem("tsconfig.json", {}, /*extendedConfigCache*/ undefined, /*watchOptionsToExtend*/ undefined, system, reportDiagnostic)!;
const parsedConfig = ts.parseConfigFileWithSystem("tsconfig.json", { target: ts.ScriptTarget.ES5, module: ts.ModuleKind.AMD }, /*extendedConfigCache*/ undefined, /*watchOptionsToExtend*/ undefined, system, reportDiagnostic)!;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see you're still using ES5 here - are you just doing this to avoid churning baselines?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ryan asked me about this one too. Yes, this is to avoid churning baselines.

compilerOptions: {
incremental: true,
target: "es5",
target: "es2015",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But so why is this one ES2015?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed most tests that broke to es2015 first, and then flipped things back. In this case I'm sure I did it to avoid a deprecation error that messes up the incremental test.

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@jakebaileyJake Bailey (jakebailey) added the Breaking Change Would introduce errors in existing code label Jan 31, 2026
@jakebailey
Jake Bailey (jakebailey) added this pull request to the merge queueJan 31, 2026
Merged via the queue into microsoft:main with commit 95e3aaaJan 31, 2026
33 checks passed
@jakebailey
Jake Bailey (jakebailey) deleted the es-current-year branch January 31, 2026 05:22
@github-project-automationgithub-project-automationBot moved this from Waiting on author to Done in PR BacklogJan 31, 2026
@microsoftMicrosoft (microsoft) locked as resolved and limited conversation to collaborators Jul 30, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: TeamBreaking ChangeWould introduce errors in existing codeFor Milestone BugPRs that fix a bug with a specific milestone

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Change default --target to latest ECMAScript version Deprecate --target es5, make lowest target es2015

7 participants

@jakebailey@typescript-bot@DanielRosenwasser@RyanCavanaugh@Andarist@andrewbranch