Skip to content

Conversation

jakebailey
Copy link
Member

This is a port of microsoft/typescript-go#200; unions are now sorted consistently without using type IDs.

Whether or not to merge this, I have no idea, but I really want to see the perf and results.

(That and it's needed for the port for comparing baselines.)

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Mar 11, 2025
@typescript-bot
Copy link
Collaborator

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 @DanielRosenwasser and @RyanCavanaugh are aware of the changes, just as a heads up.

@jakebailey
Copy link
Member Author

@typescript-bot test it
@typescript-bot pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 11, 2025

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

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 11, 2025

Hey @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/164916/artifacts?artifactName=tgz&fileId=A2FCB945B94ACDC53E3D7A4F45018123C015539C515E48C2EC519EDF4BA4625B02&fileName=/typescript-5.9.0-insiders.20250311.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/[email protected]".;

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the user tests with tsc comparing main and refs/pull/61399/merge:

Something interesting changed - please have a look.

Details

effect

tsconfig.json

tsconfig.build.json

tsconfig.base.json

packages/platform/dtslint/tsconfig.json

lodash

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

  • [NEW] error TS2322: Type 'void | boolean' is not assignable to type 'boolean'.
    • /mnt/ts_downloads/_/m/lodash/node_modules/lodash/core.js(1361,5)
  • [MISSING] error TS2322: Type 'boolean | void' is not assignable to type 'boolean'.
    • /mnt/ts_downloads/_/m/lodash/node_modules/lodash/core.js(1361,5)

puppeteer

packages/puppeteer-core/tsconfig.json

@typescript-bot
Copy link
Collaborator

Hey @jakebailey, the results of running the DT tests are ready.

There were interesting changes:

Branch only errors:

Package: react-redux/v5
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-redux/v5/react-redux-tests.tsx
   87:7   error  TypeScript@local compile error: 
Argument of type 'typeof TestComponent' is not assignable to parameter of type 'Component<(() => { bar: number; }) & DispatchProp<any>>'.
  Type 'typeof TestComponent' is not assignable to type 'ComponentClass<(() => { bar: number; }) & DispatchProp<any>, any>'.
    Types of parameters 'props' and 'props' are incompatible.
      Type '(() => { bar: number; }) & DispatchProp<any>' is not assignable to type 'OwnProps & StateProps'.
        Type '(() => { bar: number; }) & DispatchProp<any>' is not assignable to type 'OwnProps'                                              @definitelytyped/expect
   89:26  error  TypeScript@local compile error: 
Type '{ foo: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & DispatchProp<any>, "dispatch">, any, any>> & Readonly<...>'.
  Property 'foo' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & DispatchProp<any>, "dispatch">, any, any>> & Readonly<...>'                                                                                                                                                                                          @definitelytyped/expect
  236:7   error  TypeScript@local compile error: 
Argument of type 'typeof TestComponent' is not assignable to parameter of type 'Component<(() => { bar: number; }) & { onClick: () => void; }>'.
  Type 'typeof TestComponent' is not assignable to type 'ComponentClass<(() => { bar: number; }) & { onClick: () => void; }, any>'.
    Types of parameters 'props' and 'props' are incompatible.
      Type '(() => { bar: number; }) & { onClick: () => void; }' is not assignable to type 'OwnProps & StateProps & DispatchProps'.
        Type '(() => { bar: number; }) & { onClick: () => void; }' is not assignable to type 'OwnProps'  @definitelytyped/expect
  238:26  error  TypeScript@local compile error: 
Type '{ foo: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & { onClick: () => void; }, "onClick">, any, any>> & Readonly<...>'.
  Property 'foo' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & { onClick: () => void; }, "onClick">, any, any>> & Readonly<...>'                                                                                                                                                                              @definitelytyped/expect
  265:7   error  TypeScript@local compile error: 
Argument of type 'typeof TestComponent' is not assignable to parameter of type 'Component<(() => { bar: number; }) & { onClick: () => void; }>'.
  Type 'typeof TestComponent' is not assignable to type 'ComponentClass<(() => { bar: number; }) & { onClick: () => void; }, any>'.
    Types of parameters 'props' and 'props' are incompatible.
      Type '(() => { bar: number; }) & { onClick: () => void; }' is not assignable to type 'OwnProps & StateProps & DispatchProps'.
        Type '(() => { bar: number; }) & { onClick: () => void; }' is not assignable to type 'OwnProps'  @definitelytyped/expect
  267:26  error  TypeScript@local compile error: 
Type '{ foo: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & { onClick: () => void; }, "onClick">, any, any>> & Readonly<...>'.
  Property 'foo' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Omit<(() => { bar: number; }) & { onClick: () => void; }, "onClick">, any, any>> & Readonly<...>'                                                                                                                                                                              @definitelytyped/expect

✖ 6 problems (6 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: json-logic-js
Error:

Out of memory

Package: react-redux/v6
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-redux/v6/react-redux-tests.tsx
   98:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Readonly<Omit<OwnProps & StateProps, never>>'                      @definitelytyped/expect
  339:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Readonly<Omit<OwnProps & StateProps & DispatchProps, "onClick">>'  @definitelytyped/expect
  368:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Readonly<Omit<OwnProps & StateProps & DispatchProps, "onClick">>'  @definitelytyped/expect

✖ 3 problems (3 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: react-redux
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-redux/react-redux-tests.tsx
  108:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Omit<ClassAttributes<TestComponent> & OwnProps & StateProps, never>'                      @definitelytyped/expect
  378:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Omit<ClassAttributes<TestComponent> & OwnProps & StateProps & DispatchProps, "onClick">'  @definitelytyped/expect
  407:21  error  TypeScript@local compile error: 
Property 'bar' is missing in type '{ foo: string; }' but required in type 'Omit<ClassAttributes<TestComponent> & OwnProps & StateProps & DispatchProps, "onClick">'  @definitelytyped/expect

✖ 3 problems (3 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: ramda
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/ramda/test/fromPairs-tests.ts
  13:5  error  TypeScript@local expected type to be:
  { 2: string; 1: string; }
got:
  { 1: string; 2: string; }  @definitelytyped/expect

✖ 1 problem (1 error, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

Package: codemirror
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/codemirror/test/addon/lint/lint.ts
  61:5  error  TypeScript@local compile error: 
Unused '@ts-expect-error' directive                                                                                                                                                     @definitelytyped/expect
  63:9  error  TypeScript@local compile error: 
Type '(content: string, options: any, cm: Editor) => null' is not assignable to type 'Linter<any>'.
  Type 'null' is not assignable to type 'Annotation[] | PromiseLike<Annotation[]>'  @definitelytyped/expect

✖ 2 problems (2 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@[email protected][email protected]/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

You can check the log here.

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 34 34 ~ ~ ~ p=1.000 n=6
Symbols 62,390 62,312 -78 (- 0.13%) ~ ~ p=0.001 n=6
Types 50,395 50,392 -3 (- 0.01%) ~ ~ p=0.001 n=6
Memory used 194,149k (± 0.98%) 195,786k (± 0.75%) ~ 192,795k 196,403k p=0.810 n=6
Parse Time 1.31s (± 0.84%) 1.30s (± 0.79%) ~ 1.29s 1.31s p=0.530 n=6
Bind Time 0.73s 0.73s (± 0.56%) ~ 0.73s 0.74s p=0.405 n=6
Check Time 9.76s (± 0.15%) 12.10s (± 0.64%) 🔻+2.34s (+23.97%) 12.00s 12.23s p=0.005 n=6
Emit Time 2.76s (± 0.50%) 2.74s (± 1.09%) ~ 2.71s 2.78s p=0.516 n=6
Total Time 14.56s (± 0.13%) 16.88s (± 0.44%) 🔻+2.32s (+15.96%) 16.79s 16.97s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 56 74 🔻+18 (+32.14%) ~ ~ p=0.001 n=6
Symbols 948,670 954,563 +5,893 (+ 0.62%) ~ ~ p=0.001 n=6
Types 410,947 414,299 +3,352 (+ 0.82%) ~ ~ p=0.001 n=6
Memory used 1,224,304k (± 0.00%) 1,236,270k (± 0.00%) +11,966k (+ 0.98%) 1,236,209k 1,236,348k p=0.005 n=6
Parse Time 6.66s (± 0.16%) 6.61s (± 1.08%) ~ 6.52s 6.69s p=0.294 n=6
Bind Time 1.89s (± 0.40%) 1.88s (± 0.29%) ~ 1.88s 1.89s p=0.137 n=6
Check Time 31.93s (± 0.41%) 33.46s (± 0.38%) 🔻+1.53s (+ 4.78%) 33.26s 33.61s p=0.005 n=6
Emit Time 15.25s (± 0.36%) 15.33s (± 0.41%) +0.08s (+ 0.55%) 15.29s 15.46s p=0.045 n=6
Total Time 55.74s (± 0.32%) 57.29s (± 0.32%) +1.55s (+ 2.78%) 56.99s 57.50s p=0.005 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,344,569 2,355,578 +11,009 (+ 0.47%) ~ ~ p=0.001 n=6
Types 845,044 848,437 +3,393 (+ 0.40%) ~ ~ p=0.001 n=6
Memory used 2,119,780k (± 0.01%) 2,113,040k (± 0.01%) -6,740k (- 0.32%) 2,112,874k 2,113,140k p=0.005 n=6
Parse Time 7.39s (± 1.65%) 7.33s (± 0.79%) ~ 7.27s 7.41s p=0.375 n=6
Bind Time 2.34s (± 6.36%) 2.40s (± 3.40%) ~ 2.26s 2.48s p=0.332 n=6
Check Time 72.95s (± 0.47%) 79.98s (± 1.09%) 🔻+7.03s (+ 9.63%) 78.29s 80.85s p=0.005 n=6
Emit Time 0.15s (± 3.52%) 0.15s (± 5.56%) ~ 0.14s 0.16s p=0.929 n=6
Total Time 82.82s (± 0.40%) 89.86s (± 0.96%) 🔻+7.03s (+ 8.49%) 88.19s 90.71s p=0.005 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,697 1,227,367 +670 (+ 0.05%) ~ ~ p=0.001 n=6
Types 266,990 267,827 +837 (+ 0.31%) ~ ~ p=0.001 n=6
Memory used 2,356,784k (± 0.02%) 2,361,801k (± 0.02%) +5,017k (+ 0.21%) 2,361,199k 2,362,432k p=0.005 n=6
Parse Time 5.22s (± 1.04%) 5.21s (± 1.00%) ~ 5.17s 5.28s p=0.936 n=6
Bind Time 1.79s (± 0.77%) 1.79s (± 0.93%) ~ 1.77s 1.81s p=0.675 n=6
Check Time 35.29s (± 0.44%) 38.01s (± 0.53%) 🔻+2.73s (+ 7.72%) 37.79s 38.37s p=0.005 n=6
Emit Time 3.09s (± 4.23%) 2.97s (± 2.28%) ~ 2.91s 3.07s p=0.077 n=6
Total Time 45.40s (± 0.52%) 48.01s (± 0.55%) 🔻+2.61s (+ 5.75%) 47.76s 48.49s p=0.005 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,226,697 1,227,367 +670 (+ 0.05%) ~ ~ p=0.001 n=6
Types 266,990 267,827 +837 (+ 0.31%) ~ ~ p=0.001 n=6
Memory used 2,790,829k (±14.22%) 2,943,455k (±11.50%) ~ 2,431,486k 3,160,643k p=0.066 n=6
Parse Time 6.92s (± 1.63%) 7.00s (± 1.03%) ~ 6.89s 7.09s p=0.298 n=6
Bind Time 2.14s (± 1.27%) 2.17s (± 2.54%) ~ 2.11s 2.26s p=0.297 n=6
Check Time 42.75s (± 0.52%) 45.83s (± 0.69%) 🔻+3.08s (+ 7.21%) 45.26s 46.11s p=0.005 n=6
Emit Time 3.54s (± 2.08%) 3.47s (± 1.71%) ~ 3.41s 3.55s p=0.128 n=6
Total Time 55.37s (± 0.50%) 58.47s (± 0.53%) 🔻+3.11s (+ 5.61%) 57.89s 58.75s p=0.005 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 262,669 262,808 +139 (+ 0.05%) ~ ~ p=0.001 n=6
Types 106,848 106,926 +78 (+ 0.07%) ~ ~ p=0.001 n=6
Memory used 440,416k (± 0.02%) 441,286k (± 0.02%) +870k (+ 0.20%) 441,175k 441,403k p=0.005 n=6
Parse Time 3.54s (± 1.71%) 3.55s (± 1.11%) ~ 3.50s 3.61s p=0.809 n=6
Bind Time 1.31s (± 2.08%) 1.32s (± 1.04%) ~ 1.29s 1.33s p=0.868 n=6
Check Time 18.91s (± 0.37%) 20.49s (± 0.17%) 🔻+1.59s (+ 8.40%) 20.45s 20.54s p=0.005 n=6
Emit Time 1.52s (± 0.90%) 1.53s (± 0.89%) ~ 1.52s 1.55s p=0.113 n=6
Total Time 25.27s (± 0.45%) 26.90s (± 0.07%) 🔻+1.63s (+ 6.43%) 26.88s 26.93s p=0.005 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 71 71 ~ ~ ~ p=1.000 n=6
Symbols 225,981 225,617 -364 (- 0.16%) ~ ~ p=0.001 n=6
Types 94,356 94,365 +9 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 371,313k (± 0.04%) 371,645k (± 0.06%) +332k (+ 0.09%) 371,445k 371,925k p=0.031 n=6
Parse Time 2.90s (± 1.64%) 2.88s (± 1.34%) ~ 2.81s 2.91s p=0.126 n=6
Bind Time 1.61s (± 1.14%) 1.59s (± 1.08%) ~ 1.57s 1.62s p=0.056 n=6
Check Time 16.50s (± 0.28%) 17.71s (± 0.46%) 🔻+1.21s (+ 7.31%) 17.59s 17.83s p=0.005 n=6
Emit Time 0.00s (±154.76%) 0.00s ~ ~ ~ p=0.174 n=6
Total Time 21.02s (± 0.36%) 22.18s (± 0.45%) 🔻+1.16s (+ 5.53%) 22.05s 22.31s p=0.005 n=6
vscode - node (v18.15.0, x64)
Errors 7 7 ~ ~ ~ p=1.000 n=6
Symbols 3,277,211 3,260,478 -16,733 (- 0.51%) ~ ~ p=0.001 n=6
Types 1,109,144 1,108,896 -248 (- 0.02%) ~ ~ p=0.001 n=6
Memory used 3,339,238k (± 0.01%) 3,335,469k (± 0.01%) -3,770k (- 0.11%) 3,335,053k 3,335,729k p=0.005 n=6
Parse Time 14.54s (± 0.91%) 14.46s (± 0.56%) ~ 14.34s 14.57s p=0.230 n=6
Bind Time 4.61s (± 0.69%) 4.65s (± 0.74%) ~ 4.63s 4.72s p=0.220 n=6
Check Time 90.01s (± 1.32%) 92.57s (± 2.02%) +2.56s (+ 2.84%) 90.70s 94.80s p=0.020 n=6
Emit Time 29.53s (± 3.15%) 28.95s (± 4.12%) ~ 26.95s 30.69s p=0.936 n=6
Total Time 138.70s (± 1.33%) 140.62s (± 1.03%) ~ 138.84s 142.24s p=0.128 n=6
webpack - node (v18.15.0, x64)
Errors 29 29 ~ ~ ~ p=1.000 n=6
Symbols 295,142 293,741 -1,401 (- 0.47%) ~ ~ p=0.001 n=6
Types 120,554 120,588 +34 (+ 0.03%) ~ ~ p=0.001 n=6
Memory used 449,519k (± 0.02%) 448,322k (± 0.01%) -1,197k (- 0.27%) 448,277k 448,392k p=0.005 n=6
Parse Time 4.09s (± 0.36%) 4.07s (± 0.20%) -0.02s (- 0.45%) 4.06s 4.08s p=0.048 n=6
Bind Time 1.77s (± 1.49%) 1.76s (± 0.86%) ~ 1.74s 1.77s p=0.231 n=6
Check Time 19.12s (± 0.54%) 19.50s (± 0.34%) +0.38s (+ 1.97%) 19.43s 19.61s p=0.005 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.98s (± 0.37%) 25.33s (± 0.31%) +0.35s (+ 1.39%) 25.25s 25.47s p=0.005 n=6
xstate-main - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 557,004 556,446 -558 (- 0.10%) ~ ~ p=0.001 n=6
Types 187,723 188,255 +532 (+ 0.28%) ~ ~ p=0.001 n=6
Memory used 491,191k (± 0.05%) 491,457k (± 0.01%) +266k (+ 0.05%) 491,412k 491,534k p=0.031 n=6
Parse Time 3.36s (± 0.62%) 3.37s (± 0.98%) ~ 3.32s 3.41s p=0.515 n=6
Bind Time 1.19s (± 0.63%) 1.19s (± 0.43%) ~ 1.19s 1.20s p=0.784 n=6
Check Time 19.96s (± 2.47%) 20.13s (± 0.19%) ~ 20.07s 20.17s p=0.065 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.52s (± 1.99%) 24.70s (± 0.16%) ~ 24.65s 24.75s p=0.066 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the top 400 repos with tsc comparing main and refs/pull/61399/merge:

Something interesting changed - please have a look.

Details

adobe/react-spectrum

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

packages/@spectrum-icons/illustrations/tsconfig.types.json

Chocobozzz/PeerTube

6 of 13 projects failed to build with the old tsc and were ignored

client/tsconfig.json

CopilotKit/CopilotKit

12 of 37 projects failed to build with the old tsc and were ignored

examples/copilot-form-filling/tsconfig.json

dubinc/dub

5 of 9 projects failed to build with the old tsc and were ignored

packages/utils/tsconfig.json

  • error TS2339: Property 'ids' does not exist on type '{ monthly: number; yearly: number; ids: string[]; } | { monthly: number; yearly: number; } | { monthly: null; yearly: null; }'.

facebook/docusaurus

25 of 42 projects failed to build with the old tsc and were ignored

packages/docusaurus-plugin-rsdoctor/tsconfig.json

heyverse/hey

3 of 12 projects failed to build with the old tsc and were ignored

apps/web/tsconfig.json

hoarder-app/hoarder

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

apps/web/tsconfig.json

motion-canvas/motion-canvas

13 of 18 projects failed to build with the old tsc and were ignored

packages/core/tsconfig.json

packages/core/tsconfig.build.json

react-navigation/react-navigation

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

tsconfig.json

example/tsconfig.json

reduxjs/react-redux

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

tsconfig.json

reduxjs/redux-devtools

26 of 58 projects failed to build with the old tsc and were ignored

extension/tsconfig.json

reduxjs/reselect

typescript_test/tsconfig.json

  • error TS2345: Argument of type '[(state: State, id: number, isCompleted: boolean) => { id: number; completed: boolean; }[], (state: State, id: number) => { id: number; completed: boolean; }, (state: State) => { ...; }[]]' is not assignable to parameter of type '[(state: State) => { id: number; completed: boolean; }[], (state: State, id: number) => { id: number; completed: boolean; }, (state: State, id: number, isCompleted: boolean) => { ...; }[]]'.

type-tests/tsconfig.json

test/tsconfig.json

RSSNext/Follow

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

apps/ssr/tsconfig.json

TanStack/query

74 of 110 projects failed to build with the old tsc and were ignored

packages/vue-query/tsconfig.prod.json

tusen-ai/naive-ui

3 of 6 projects failed to build with the old tsc and were ignored

src/tsconfig.demo.json

  • error TS2321: Excessive stack depth comparing types 'UnionToTuple<{ [K in T]: TLiteral<K>; }[T], UnionLast<{ [K in T]: TLiteral<K>; }[T]>>' and 'TSchema[]'.
    • file:///mnt/ts_downloads/_/m/naive-ui/node_modules/@sinclair/typebox/typebox.d.ts#L137 in src/tsconfig.demo.json
    • file:///mnt/ts_downloads/_/m/naive-ui/node_modules/@sinclair/typebox/typebox.d.ts#L145 in src/tsconfig.demo.json
  • error TS2321: Excessive stack depth comparing types 'UnionToTuple<{ [K in S]: TLiteral<K>; }[S], UnionLast<{ [K in S]: TLiteral<K>; }[S]>>' and 'TLiteral<TLiteralValue>[]'.
    • file:///mnt/ts_downloads/_/m/naive-ui/node_modules/@sinclair/typebox/typebox.d.ts#L380 in src/tsconfig.demo.json

@rubiesonthesky
Copy link

I know this is draft etc. I'm just wondering that is it intended that some NodeList changed to HTMLCollection and such? :) Or is due of something similar as #59729 ?

@jakebailey
Copy link
Member Author

Yes, it's like that issue. Union order unfortunately matters in a couple of places, which is why I'm sending this at all!

@controversial
Copy link

Is this likely to help with issues like #53614?

@jakebailey
Copy link
Member Author

Yes, I think so. Part of the Go port is that we need to make our code even more resilient to ordering changes, since we are now running multiple checkers at once.

@jakebailey jakebailey mentioned this pull request Mar 14, 2025
@jakebailey
Copy link
Member Author

Closing; if I want to retest this I'll repick from the tsgo-port branch with both sorting changes.

@jakebailey jakebailey closed this Jul 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants