Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

intl.d.ts: cleanup, add missing features, fix library discrepancies #58084

Open
wants to merge 61 commits into
base: main
Choose a base branch
from

Conversation

Renegade334
Copy link
Contributor

@Renegade334 Renegade334 commented Apr 5, 2024

Recent work on the Intl library definitions revealed a lot of outstanding inaccuracies and inconsistencies, and so I've taken a deep dive through ECMA-402 and done some significant housekeeping.

This is a big PR, and I've itemised the changes for ease of review. The majority are straightforward and uncontroversial updates to bring things in line with the spec, and it seems sensible just to have them as one PR.

A couple of proposed changes have breaking potential or are related to the typing meta, and are marked 🚩 to indicate that they may need discussion.

Library-wide

Typings

  • Where a literal union is used more than once, it is now declared as a type in order to avoid duplication, under the {ConstructorName}Options{PropertyName} naming convention. This practice started to be used here and there in later lib.intl updates, but is now consistent throughout.
  • Changed the convention for types derived from "option registry" interfaces.
    • Before, these types were simply aliases to keyof R, which works fine for validation, but isn't very helpful in tsserver output.
      • type Intl.NumberFormatOptionsStyle = keyof NumberFormatOptionsStyleRegistry – so what are the valid options?
    • Now, these types are of the form R[keyof R], which ensures that they're resolved to a union type.
      • type Intl.NumberFormatOptionsStyle = "decimal" | "percent" | "currency" – much more accessible.
    • This mirrors the convention already used in the core library (WeakKey etc.)
  • 🚩 Renamed a small number of remaining option literal union types from {ConstructorName}{PropertyName} to {ConstructorName}Options{PropertyName}. These are exported types, so in theory this is breaking if anyone is importing those specific union types from the library; however, the maintenance and DX benefits of a universal namespace convention seem to support this change. (There are no resulting errors in the user test suite.)
    • There is the question of whether the old names would need keeping as deprecated aliases if this change were made.
  • 🚩 Removed the type UnicodeBCP47LanguageTag, which is simply a primitive type alias to string. This gets optimised away by the compiler, and serves no useful purpose; there are no other examples of "primitive alias as usage descriptor" elsewhere in the library.

Documentation

  • MDN links and copied documentation have been removed throughout. I'm guessing these were added due to a sense of mistaken equivalence with the DOM APIs, but they shouldn't be present on ECMA definitions.
  • Added/updated docblocks for all methods and properties of Intl prototypes.
  • Docblocks for each individual option interface property have been removed. This declutters the library significantly, for no significant impact on DX: for self-explanatory options, the description adds nothing, whereas for complex ones, a one-sentence summary doesn't eliminate the need to read the manual.
  • Docblocks for constructors have been removed, in keeping with the rest of the library.

Tests

  • Conformance tests are consolidated into a single testfile per lib.intl version.
  • Many of the existing intl tests were implementation tests copied from MDN, rather than type validation tests, which has been addressed.

Intl

  • Moved the definition of Intl.supportedValuesOf from es2022 to es2023.
  • Added override for Intl.getCanonicalLocales to es2020.
  • Added missing prototype properties of Intl constructors.

Intl.Collator

  • 🚩 Removed string union of valid collations. This list is subject to change in CLDR, and exactly which collations are supported is implementation-dependent. It doesn't seem like the sort of list that should be hard-coded here.
    • A list of implementation-supported collations is now accessible via es2023's Intl.supportedValuesOf(), if runtime validation is desired.
  • Moved collation option from es5 to es2021.
  • The collator options caseFirst and numeric only exist if they are supported by the implementation and are absent if not, hence these are typed as optional.

Intl.DateTimeFormat

  • Removed bigint from argument types in format functions, as explicitly not supported.
  • Narrowed ResolvedDateTimeFormatOptions property types in es5.
  • Moved hourCycle option from es2020 to es2018.
  • Moved dayPeriod, dateStyle, timeStyle options from es2020 to es2021.
  • Progressive typing of timeZoneName, with values {short,long}Offset and {short,long}Generic moved to es2022.
  • Added missing part types relatedYear and yearName to es2020.
  • Removed duplicate interface properties.

Intl.DisplayNames

  • Moved the definition from es2020 to es2021.
  • DisplayNamesOptions properties may be undefined.
  • Progressive typing of DisplayNamesOptionsType, with values calendar and dateTimeField moved to es2022.
  • Moved languageDisplay option to es2022.
  • New DisplayNameConstructor interface.

Intl.ListFormat

  • Added ListFormatPart interface.
  • Renamed some existing option literal union types from ListFormat{PropertyName} to ListFormatOptions{PropertyName}.
  • New ListFormatConstructor interface.

Intl.Locale

  • Refactored, with the Locale prototype no longer being typed as a child interface of LocaleOptions.
  • New LocaleConstructor interface.
  • LocaleOptions properties may be undefined.
  • Correctly type Locale properties as required/readonly.
  • The properties caseFirst and numeric only exist if they are supported by the implementation and are absent if not, hence these are typed as optional.

Intl.NumberFormat

  • Removed bigint from the original definition of the formatToParts method in es2018 (prior to the language feature's existence), and added a new override to es2020.bigint.

Intl.PluralRules

  • Added the missing selectRange method to es2023.
  • Added "NumberFormat v3" options to PluralRules in es2023.
  • Under ResolvedPluralRulesOptions, {minimum,maximum}FractionDigits may be omitted from es2023 onwards, and these are therefore typed as optional throughout. This mirrors the equivalent change to ResolvedNumberFormatOptions in Intl.NumberFormat: Add latest options, fix previous library discrepancies #56902.
  • Constructor cannot be invoked without new.

Intl.RelativeTimeFormat

  • Added the missing numberingSystem option.
  • Partitioned part and unit types for clarity.
  • Renamed some existing option literal union types from RelativeTimeFormat{PropertyName} to RelativeTimeFormatOptions{PropertyName}.

Intl.Segmenter

  • Segments#containing may return undefined if the specified index does not exist.
  • New SegmenterConstructor interface.

Locale methods of primitive prototypes

Arbitrary nomenclature to refer to the three types of locale method definitions within the library:

  • "es5 placeholders", zero-arity placeholder methods defined in the original ECMA-262 specification, intended to be overriden by ECMA-402 definitions.
  • "first-generation overrides", defined prior to es2020, which accept a locales parameter of type string | readonly string[].
  • "second-generation overrides", defined in es2020 and later, which accept a locales parameter of type Intl.LocalesArgument.
  • Implement the second-generation overrides for Array.prototype.toLocaleString and TypedArray.prototype.toLocaleString under es2020.array, which were omitted from Add missing parameters from Array.toLocaleString on ES2015 libs #57679.
  • Move first-generation overrides String.prototype.toLocale{Lower,Upper}Case to es2015.core.
  • Ensure the locales argument to all first-generation overrides accepts readonly string[], as per Make Intl locales arrays readonly #56513.
  • Use NumberFormatOptions in the definition of BigInt.prototype.toLocaleString in es2020.bigint, and remove the duplicate NumberFormat definitions.
  • toLocaleString method of BigInt64Array and BigUint64Array prototypes updated to the second-generation override signature.
  • Update docblocks for locale methods, including es5 placeholder methods.
  • 🚩 Widen the type of the options parameter of Array.prototype.toLocaleString.
    • The current type assumes that the only objects overriding toLocaleString will be builtin number-like/date-like objects, whose toLocaleString method will pass its parameters to either NumberFormat or DateTimeFormat.
    • However, the standard for Array.prototype.toLocaleString doesn't specify this; it will pass its parameters to any object's toLocaleString method, including user-defined methods. All that ECMA-262 asks is that those parameters not be used for anything other than the standard toLocaleString parameter pattern.
    • Accordingly, this function should, by right, remain agnostic about its elements' toLocaleString implementations – providing they obey the standardised function signature.
    • To achieve this, the type of the options parameter could be widened to object. However, this comes at the expense of not type-checking any option properties, even for arrays of builtin elements which were covered just fine by the previous behaviour.
    • The alternative is to leave the parameter as-is, and accept the above limitations.
    • In an ideal world, we would conditionally infer the options parameter type from T, but this leads to issues with infinite recursion, so doesn't look like it's an option.
  • 🚩 Discussion on Add missing parameters from Array.toLocaleString on ES2015 libs #57679 covered the question of whether the locales parameter of first- and second-generation overrides should be required or optional when an es5 placeholder already exists.
    • The verdict there was that the first parameter should be required, so that the new override and the es5 placeholder don't have overlapping signatures.
    • However, this disallows usage like the following:
      numberArray.toLocaleString(undefined, { minimumIntegerDigits: 3 });
      ...which is a valid way of selecting the default locale while also specifying custom format options. Keeping the first parameter optional is an easy way of allowing this usage case.
    • It's only the array methods added by the above PR that currently use the "mandatory first parameter" signature; all other existing first- and second-generation overrides have the locales parameter as optional.

- narrow resolved option types
- progressively type DateTimeFormatOptionsTimeZoneName
- hourCycle comes under es2018
- dayPeriod, dateStyle, timeStyle come under es2021
- remove duplicates

NB. resolved timeZone option may be undefined in es5, but will be defaulted from es2015 onwards
- overriding collation to es2021
- resolved options caseFirst and numeric may be omitted (implementation-dependent)
- ECMA-402 Array.prototype.toLocaleString override added to spec in v2 (2015)
- ECMA-402 String.prototype.toLocale{Lower,Upper}Case overrides added to spec in v2 (2015)
- Deduplicated NumberFormat option declarations in es2020.bigint
- Updated docblocks for many override methods
- Updated docblocks for native (parameter-less) toLocaleString methods
- clean up supportedLocalesOf()
- add NumberFormat V3 options to es2023
- resolved {minimum,maximum}FractionDigits may be omitted (as of es2023; mirrors ResolvedNumberFormatOptions)
- Locale no longer extends LocaleOptions but is defined separately
- Locale properties may be undefined, but are never absent
- LocaleOptions properties may be undefined
- Create a LocaleConstructor interface for consistency
Doesn't add clarity, and gets optimised away by TS, so the associated docblock is not visible.
- Move es2015 primitive prototype toLocaleString overrides to es2015.core
- Add ReadonlyArray overrides
- Update TypedArray.prototype.toLocaleString overrides
- Array.prototype.toLocaleString `options` type should not be narrowed
- Add missing numberingSystem option
- Correctly type RelativeTimeFormatOptions
- Deduplicate RelativeTimeFormatUnit
- Add constructor interface
- move definition to es2021.intl
- rename option types
- separate es2022 changes, including union registry for DisplayNamesOptionsType
- correctly type DisplayNamesOptions and ResolvedDisplayNamesOptions
- add constructor interface
- rename option types
- ListFormatPart interface
- add constructor interface
- add union types
- Segments#containing() may return undefined
- add constructor interface
- convert remaining uses of `string | string[]` to `string | readonly string[]` for consistency
- `locales` argument to IntlChildConstructor.supportedLocalesOf() is optional
Move tests for DisplayNames, supportedValuesOf
Remove duplicate DisplayNamesOptionsLanguageDisplay definition
Comment on lines +53 to +58
interface DisplayNamesOptionsTypeRegistry {
language: "language";
region: "region";
script: "script";
currency: "currency";
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

  • es2021: language, region, script, currency
  • es2022: calendar, dateTimeField

Comment on lines +4540 to +4543
interface DateTimeFormatOptionsTimeZoneNameRegistry {
short: "short";
long: "long";
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

  • es5: short, long
  • es2022: shortOffset, longOffset, shortGeneric, longGeneric

@jakebailey
Copy link
Member

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 11, 2024

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

Command Status 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

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

There were interesting changes:

Branch only errors:

Package: slate
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/slate/slate-tests.ts
  175:16  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-sortable-list
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-sortable-list/react-native-sortable-list-tests.tsx
  191:13  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  192:24  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

Package: pdfmake
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/pdfmake/test/pdfmake-playground-examples-tests.ts
  129:7  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: x-ray
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/x-ray/x-ray-tests.ts
  7:1  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-autocomplete-input
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-autocomplete-input/react-native-autocomplete-input-tests.tsx
  50:17  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-signature-capture
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-signature-capture/react-native-signature-capture-tests.tsx
  16:17  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-text-input-mask
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-text-input-mask/index.d.ts
  6:18  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: tuya-panel-kit
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/tuya-panel-kit/@react-navigation/stack/types.d.ts
  129:24  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  136:33  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect

/mnt/vss/_work/1/DefinitelyTyped/types/tuya-panel-kit/index.d.ts
  3381:18  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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-native-modalbox
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-modalbox/react-native-modalbox-tests.tsx
   95:17  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  103:21  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

Package: react-native-table-component
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-table-component/react-native-table-component-tests.tsx
  86:25  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: d3-quadtree/v2
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/d3-quadtree/v2/d3-quadtree-tests.ts
  174:9  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: lodash/v3
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/lodash/v3/lodash-tests.ts
  698:18  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: d3-quadtree
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/d3-quadtree/d3-quadtree-tests.ts
  174:9  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: lodash
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/lodash/lodash-tests.ts
   504:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
   509:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
   518:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
   523:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  2041:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect

✖ 5 problems (5 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: loadware
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/loadware/loadware-tests.ts
  11:1  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: mergerino
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/mergerino/mergerino-tests.ts
  142:22  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  146:9   error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

Package: mithril
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/mithril/test/test-api.ts
  331:24  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-htmlview
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-htmlview/react-native-htmlview-tests.tsx
  76:13  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-calendars
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-calendars/react-native-calendars-tests.tsx
  246:1  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-ad-manager
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-ad-manager/test/react-native-ad-manager-tests.tsx
  11:5  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: react-native-material-ripple
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-material-ripple/react-native-material-ripple-tests.tsx
   6:12  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  30:9   error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

Package: react-primitives
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-primitives/react-primitives-tests.tsx
  68:17  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @definitelytyped/expect
  69:28  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

Package: react-native-button
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/react-native-button/index.d.ts
  4:18  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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: d3-quadtree/v1
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/d3-quadtree/v1/d3-quadtree-tests.ts
  174:9  error  TypeScript@local compile error: 
Type instantiation is excessively deep and possibly infinite  @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)

You can check the log here.

@typescript-bot
Copy link
Collaborator

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

Something interesting changed - please have a look.

Details

effect

packages/schema/benchmark/tsconfig.json

tsconfig.json

tsconfig.build.json

tsconfig.base.json

packages/schema/dtslint/tsconfig.json

packages/effect/dtslint/tsconfig.json

type-fest

tsconfig.json

@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 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,185 +32 (+ 0.05%) ~ ~ p=0.001 n=6
Types 50,242 50,213 -29 (- 0.06%) ~ ~ p=0.001 n=6
Memory used 192,931k (± 0.75%) 192,421k (± 0.08%) ~ 192,341k 192,717k p=0.378 n=6
Parse Time 1.29s (± 0.58%) 1.30s (± 1.09%) ~ 1.28s 1.32s p=0.280 n=6
Bind Time 0.72s 0.72s ~ ~ ~ p=1.000 n=6
Check Time 9.60s (± 0.41%) 9.56s (± 0.59%) ~ 9.49s 9.65s p=0.199 n=6
Emit Time 2.76s (± 0.53%) 2.73s (± 0.79%) -0.03s (- 1.03%) 2.71s 2.77s p=0.042 n=6
Total Time 14.37s (± 0.25%) 14.31s (± 0.37%) ~ 14.27s 14.41s p=0.065 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,109 946,460 +2,351 (+ 0.25%) ~ ~ p=0.001 n=6
Types 407,049 409,305 +2,256 (+ 0.55%) ~ ~ p=0.001 n=6
Memory used 1,222,167k (± 0.01%) 1,225,127k (± 0.00%) +2,960k (+ 0.24%) 1,225,088k 1,225,165k p=0.005 n=6
Parse Time 8.10s (± 0.13%) 8.09s (± 0.27%) ~ 8.06s 8.12s p=0.935 n=6
Bind Time 2.24s (± 0.52%) 2.22s (± 0.18%) -0.02s (- 0.74%) 2.22s 2.23s p=0.007 n=6
Check Time 36.57s (± 0.39%) 36.59s (± 0.37%) ~ 36.39s 36.76s p=1.000 n=6
Emit Time 18.17s (± 0.58%) 18.08s (± 0.57%) ~ 17.95s 18.25s p=0.147 n=6
Total Time 65.07s (± 0.23%) 64.98s (± 0.24%) ~ 64.71s 65.16s p=0.630 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 85 🔻+80 (+1,600.00%) ~ ~ p=0.001 n=6
Symbols 2,131,876 2,149,971 +18,095 (+ 0.85%) ~ ~ p=0.001 n=6
Types 925,869 944,648 +18,779 (+ 2.03%) ~ ~ p=0.001 n=6
Memory used 2,119,969k (± 0.01%) 2,144,088k (± 0.00%) +24,119k (+ 1.14%) 2,144,012k 2,144,193k p=0.005 n=6
Parse Time 8.12s (± 0.46%) 8.12s (± 0.28%) ~ 8.09s 8.14s p=0.935 n=6
Bind Time 2.76s (± 1.06%) 2.73s (± 0.59%) ~ 2.72s 2.76s p=0.090 n=6
Check Time 84.42s (± 0.64%) 85.76s (± 0.57%) +1.34s (+ 1.59%) 85.24s 86.47s p=0.008 n=6
Emit Time 0.16s (± 2.52%) 0.17s (± 3.10%) ~ 0.16s 0.17s p=0.112 n=6
Total Time 95.47s (± 0.58%) 96.78s (± 0.51%) +1.31s (+ 1.38%) 96.28s 97.49s p=0.008 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,424 1,244,787 +14,363 (+ 1.17%) ~ ~ p=0.001 n=6
Types 261,178 275,924 🔻+14,746 (+ 5.65%) ~ ~ p=0.001 n=6
Memory used 2,377,098k (± 2.59%) 2,503,692k (± 4.67%) 🔻+126,594k (+ 5.33%) 2,373,089k 2,684,189k p=0.013 n=6
Parse Time 7.49s (± 1.53%) 7.55s (± 1.40%) ~ 7.41s 7.64s p=0.378 n=6
Bind Time 2.79s (± 1.53%) 2.80s (± 0.29%) ~ 2.79s 2.81s p=0.089 n=6
Check Time 49.46s (± 0.59%) 49.43s (± 0.72%) ~ 49.12s 50.05s p=0.810 n=6
Emit Time 3.82s (± 2.24%) 3.86s (± 1.84%) ~ 3.74s 3.95s p=0.230 n=6
Total Time 63.56s (± 0.68%) 63.64s (± 0.33%) ~ 63.41s 64.02s p=0.378 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,424 1,244,787 +14,363 (+ 1.17%) ~ ~ p=0.001 n=6
Types 261,178 275,924 🔻+14,746 (+ 5.65%) ~ ~ p=0.001 n=6
Memory used 2,529,016k (± 3.09%) 2,555,140k (± 5.04%) ~ 2,449,419k 2,765,831k p=0.378 n=6
Parse Time 6.28s (± 0.98%) 6.25s (± 1.04%) ~ 6.20s 6.37s p=0.521 n=6
Bind Time 2.00s (± 0.73%) 2.01s (± 0.60%) ~ 2.00s 2.03s p=0.255 n=6
Check Time 40.41s (± 0.23%) 40.83s (± 0.56%) +0.42s (+ 1.04%) 40.62s 41.24s p=0.005 n=6
Emit Time 3.08s (± 1.80%) 3.10s (± 1.96%) ~ 3.03s 3.18s p=0.936 n=6
Total Time 51.81s (± 0.22%) 52.20s (± 0.35%) +0.40s (+ 0.77%) 52.06s 52.51s p=0.005 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 259,181 266,314 +7,133 (+ 2.75%) ~ ~ p=0.001 n=6
Types 105,173 113,150 🔻+7,977 (+ 7.58%) ~ ~ p=0.001 n=6
Memory used 428,852k (± 0.01%) 439,316k (± 0.01%) +10,464k (+ 2.44%) 439,265k 439,357k p=0.005 n=6
Parse Time 3.30s (± 0.84%) 3.28s (± 1.01%) ~ 3.23s 3.32s p=0.373 n=6
Bind Time 1.33s (± 1.03%) 1.34s (± 1.68%) ~ 1.30s 1.36s p=0.371 n=6
Check Time 18.05s (± 0.15%) 18.31s (± 0.30%) +0.26s (+ 1.42%) 18.24s 18.38s p=0.005 n=6
Emit Time 1.38s (± 1.52%) 1.37s (± 1.49%) ~ 1.34s 1.40s p=0.367 n=6
Total Time 24.05s (± 0.10%) 24.29s (± 0.39%) +0.24s (+ 0.98%) 24.16s 24.40s p=0.005 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,565 231,628 +7,063 (+ 3.15%) ~ ~ p=0.001 n=6
Types 93,734 101,631 🔻+7,897 (+ 8.42%) ~ ~ p=0.001 n=6
Memory used 369,814k (± 0.02%) 380,095k (± 0.02%) +10,281k (+ 2.78%) 380,035k 380,212k p=0.005 n=6
Parse Time 3.48s (± 0.59%) 3.47s (± 0.65%) ~ 3.44s 3.49s p=0.370 n=6
Bind Time 1.93s (± 1.44%) 1.92s (± 1.08%) ~ 1.89s 1.95s p=0.628 n=6
Check Time 19.39s (± 0.25%) 19.62s (± 0.41%) +0.22s (+ 1.15%) 19.52s 19.72s p=0.005 n=6
Emit Time 0.00s 0.00s (±244.70%) ~ 0.00s 0.02s p=0.405 n=6
Total Time 24.80s (± 0.32%) 25.01s (± 0.28%) +0.21s (+ 0.83%) 24.95s 25.11s p=0.005 n=6
vscode - node (v18.15.0, x64)
Errors 0 4 🔻+4 (+ ∞%) ~ ~ p=0.001 n=6
Symbols 2,852,988 2,854,169 +1,181 (+ 0.04%) ~ ~ p=0.001 n=6
Types 967,875 968,859 +984 (+ 0.10%) ~ ~ p=0.001 n=6
Memory used 3,025,045k (± 0.00%) 3,026,719k (± 0.00%) +1,674k (+ 0.06%) 3,026,639k 3,026,801k p=0.005 n=6
Parse Time 11.58s (± 0.33%) 11.59s (± 0.32%) ~ 11.54s 11.64s p=0.628 n=6
Bind Time 3.52s (± 2.05%) 3.48s -0.04s (- 1.23%) ~ ~ p=0.009 n=6
Check Time 65.41s (± 2.66%) 66.42s (± 1.88%) ~ 64.38s 67.75s p=0.378 n=6
Emit Time 18.89s (± 7.81%) 17.92s (± 5.86%) ~ 16.98s 19.71s p=0.298 n=6
Total Time 99.40s (± 0.39%) 99.42s (± 0.27%) ~ 99.11s 99.85s p=0.873 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 266,914 267,313 +399 (+ 0.15%) ~ ~ p=0.001 n=6
Types 108,685 108,935 +250 (+ 0.23%) ~ ~ p=0.001 n=6
Memory used 411,915k (± 0.01%) 412,333k (± 0.01%) +418k (+ 0.10%) 412,241k 412,379k p=0.005 n=6
Parse Time 3.19s (± 0.65%) 3.20s (± 0.65%) ~ 3.17s 3.22s p=0.466 n=6
Bind Time 1.39s (± 0.99%) 1.39s (± 0.71%) ~ 1.38s 1.41s p=0.402 n=6
Check Time 14.46s (± 0.44%) 14.42s (± 0.32%) ~ 14.34s 14.47s p=0.376 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 19.03s (± 0.33%) 19.01s (± 0.28%) ~ 18.93s 19.07s p=0.521 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 523,429 523,486 +57 (+ 0.01%) ~ ~ p=0.001 n=6
Types 177,955 177,968 +13 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 461,689k (± 0.08%) 461,454k (± 0.08%) ~ 461,157k 461,920k p=0.230 n=6
Parse Time 2.64s (± 0.73%) 2.63s (± 0.56%) ~ 2.62s 2.65s p=0.328 n=6
Bind Time 0.99s (± 0.76%) 0.97s (± 0.84%) -0.02s (- 1.52%) 0.96s 0.98s p=0.015 n=6
Check Time 15.38s (± 0.96%) 15.38s (± 0.56%) ~ 15.28s 15.52s p=0.687 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 19.01s (± 0.74%) 18.98s (± 0.44%) ~ 18.88s 19.12s p=1.000 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/58084/merge:

Something interesting changed - please have a look.

Details

airbnb/react-sketchapp

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

examples/basic-setup-typescript/tsconfig.json

akveo/react-native-ui-kitten

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

tsconfig.json

src/showcases/tsconfig.json

apollographql/apollo-client

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

tsconfig.json

src/tsconfig.json

Chocobozzz/PeerTube

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

packages/types-generator/tsconfig.types.json

  • error TS2321: Excessive stack depth comparing types 'RecursiveArray<?>' and 'RecursiveArray<?>'.
  • error TS2589: Type instantiation is excessively deep and possibly infinite.

clash-verge-rev/clash-verge-rev

tsconfig.json

compiler-explorer/compiler-explorer

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

tsconfig.tests.json

tsconfig.json

static/tsconfig.json

darkreader/darkreader

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

src/tsconfig.json

desktop/desktop

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

tsconfig.json

FaridSafi/react-native-gifted-chat

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

tsconfig.json

freeCodeCamp/freeCodeCamp

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

tools/challenge-editor/client/tsconfig.json

immutable-js/immutable-js

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

website/tsconfig.json

infinitered/ignite

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

boilerplate/tsconfig.json

@typescript-bot
Copy link
Collaborator

@jakebailey Here are some more interesting changes from running the top 400 repos suite

Details

jupyterlab/jupyterlab

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

packages/ui-components/examples/simple-windowed-list/tsconfig.json

packages/translation/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/base.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/base.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/gettext.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/gettext.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/manager.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/manager.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/server.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/server.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/tokens.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/utils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/utils.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/translation' or its corresponding type declarations.

packages/statusbar/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/statusbar.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/statusbar.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/tokens.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/statusbar' or its corresponding type declarations.

packages/services/examples/typescript-browser-with-output/tsconfig.json

packages/services/examples/browser/tsconfig.json

packages/rendermime/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/attachmentmodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/attachmentmodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/factories.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/factories.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/latex.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/latex.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/mimemodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/mimemodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/outputmodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/outputmodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/registry.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/registry.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/renderers.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/renderers.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/testutils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/testutils.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/tokens.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/widgets.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/widgets.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/apputils' or its corresponding type declarations.
  • error TS2307: Cannot find module '@jupyterlab/rendermime' or its corresponding type declarations.
  • error TS7006: Parameter 'content' implicitly has an 'any' type.

packages/coreutils/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/activitymonitor.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/activitymonitor.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/interfaces.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/interfaces.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/lru.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/lru.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/markdowncodeblocks.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/markdowncodeblocks.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/pageconfig.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/pageconfig.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/path.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/path.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/signal.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/signal.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/testutils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/testutils.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/text.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/text.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/time.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/time.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/url.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/url.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/coreutils' or its corresponding type declarations.
  • error TS2307: Cannot find module '@jupyterlab/coreutils/lib/testutils' or its corresponding type declarations.
  • error TS7006: Parameter 'sender' implicitly has an 'any' type.
  • error TS7006: Parameter 'args' implicitly has an 'any' type.

packages/codeeditor/tsconfig.test.json

examples/filebrowser/src/tsconfig.json

examples/console/src/tsconfig.json

learn-anything/learn-anything.xyz

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

mobile/tsconfig.json

microsoft/vscode

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

src/tsconfig.tsec.json

src/tsconfig.monaco.json

src/tsconfig.json

extensions/ipynb/tsconfig.json

react-navigation/react-navigation

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

packages/react-native-tab-view/tsconfig.build.json

packages/react-native-drawer-layout/tsconfig.build.json

@typescript-bot
Copy link
Collaborator

@jakebailey Here are some more interesting changes from running the top 400 repos suite

Details

reduxjs/redux-toolkit

11 of 32 projects failed to build with the old tsc and were ignored

examples/publish-ci/react-native/tsconfig.json

examples/publish-ci/expo/tsconfig.json

sindresorhus/type-fest

tsconfig.json

tamagui/tamagui

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

packages/web/tsconfig.json

packages/toast/tsconfig.json

packages/sheet/tsconfig.json

packages/roving-focus/tsconfig.json

packages/linear-gradient/tsconfig.json

packages/demos/tsconfig.json

packages/checkbox/tsconfig.json

packages/alert-dialog/tsconfig.json

twentyhq/twenty

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

packages/twenty-website/tsconfig.json

vuejs/core

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

tsconfig.build-node.json

* @param locales Passed as the `locales` parameter to each array element's `toLocaleString` method.
* @param options Passed as the `options` parameter to each array element's `toLocaleString` method.
*/
toLocaleString(locales?: string | readonly string[], options?: object): string;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

See notes towards the bottom of the PR description for discussion regarding the type of options here.

I'm ambivalent towards the change, but thought it would be worth proposing.

@jakebailey
Copy link
Member

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 12, 2024

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

Command Status 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

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

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

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

Everything looks good!

@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 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,185 +32 (+ 0.05%) ~ ~ p=0.001 n=6
Types 50,242 50,213 -29 (- 0.06%) ~ ~ p=0.001 n=6
Memory used 193,017k (± 0.77%) 193,171k (± 0.70%) ~ 192,367k 195,886k p=0.173 n=6
Parse Time 1.30s (± 0.76%) 1.31s (± 1.04%) ~ 1.30s 1.33s p=0.070 n=6
Bind Time 0.72s 0.72s ~ ~ ~ p=1.000 n=6
Check Time 9.61s (± 0.26%) 9.57s (± 0.37%) ~ 9.54s 9.62s p=0.106 n=6
Emit Time 2.76s (± 0.96%) 2.75s (± 0.70%) ~ 2.73s 2.78s p=0.871 n=6
Total Time 14.38s (± 0.14%) 14.36s (± 0.28%) ~ 14.31s 14.41s p=0.325 n=6
angular-1 - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 944,109 944,194 +85 (+ 0.01%) ~ ~ p=0.001 n=6
Types 407,049 407,053 +4 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 1,222,234k (± 0.00%) 1,222,285k (± 0.00%) +51k (+ 0.00%) 1,222,220k 1,222,324k p=0.045 n=6
Parse Time 6.79s (± 0.96%) 6.78s (± 0.59%) ~ 6.73s 6.85s p=1.000 n=6
Bind Time 1.87s (± 0.55%) 1.86s (± 0.53%) ~ 1.85s 1.88s p=0.065 n=6
Check Time 31.34s (± 0.52%) 31.49s (± 0.48%) ~ 31.33s 31.69s p=0.128 n=6
Emit Time 15.27s (± 0.54%) 15.29s (± 0.55%) ~ 15.16s 15.38s p=0.630 n=6
Total Time 55.28s (± 0.32%) 55.42s (± 0.44%) ~ 55.22s 55.79s p=0.336 n=6
mui-docs - node (v18.15.0, x64)
Errors 5 5 ~ ~ ~ p=1.000 n=6
Symbols 2,131,876 2,132,013 +137 (+ 0.01%) ~ ~ p=0.001 n=6
Types 925,869 925,876 +7 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 2,120,062k (± 0.00%) 2,120,271k (± 0.00%) +210k (+ 0.01%) 2,120,079k 2,120,349k p=0.020 n=6
Parse Time 6.82s (± 0.21%) 6.86s (± 0.24%) +0.04s (+ 0.54%) 6.84s 6.88s p=0.008 n=6
Bind Time 2.29s (± 0.48%) 2.31s (± 1.56%) ~ 2.29s 2.38s p=0.301 n=6
Check Time 71.40s (± 0.42%) 71.21s (± 1.28%) ~ 69.41s 71.86s p=0.689 n=6
Emit Time 0.14s 0.14s ~ ~ ~ p=1.000 n=6
Total Time 80.66s (± 0.38%) 80.52s (± 1.09%) ~ 78.79s 81.13s p=0.689 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,424 1,231,299 +875 (+ 0.07%) ~ ~ p=0.001 n=6
Types 261,178 261,194 +16 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,402,285k (± 3.25%) 2,352,818k (± 0.03%) ~ 2,352,062k 2,353,943k p=1.000 n=6
Parse Time 4.99s (± 0.73%) 4.97s (± 1.02%) ~ 4.90s 5.03s p=0.575 n=6
Bind Time 1.89s (± 0.91%) 1.90s (± 0.27%) ~ 1.90s 1.91s p=0.351 n=6
Check Time 34.09s (± 0.29%) 34.14s (± 0.21%) ~ 34.04s 34.24s p=0.575 n=6
Emit Time 2.63s (± 2.03%) 2.58s (± 1.67%) ~ 2.51s 2.63s p=0.109 n=6
Total Time 43.62s (± 0.20%) 43.60s (± 0.22%) ~ 43.44s 43.72s p=0.689 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,230,424 1,231,299 +875 (+ 0.07%) ~ ~ p=0.001 n=6
Types 261,178 261,194 +16 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 2,478,777k (± 3.13%) 2,428,975k (± 0.04%) ~ 2,427,629k 2,430,058k p=0.689 n=6
Parse Time 6.26s (± 1.35%) 6.23s (± 0.56%) ~ 6.18s 6.28s p=0.689 n=6
Bind Time 2.03s (± 0.40%) 2.03s (± 0.27%) ~ 2.02s 2.03s p=0.869 n=6
Check Time 40.50s (± 0.27%) 40.59s (± 0.22%) ~ 40.47s 40.69s p=0.128 n=6
Emit Time 3.14s (± 3.83%) 3.10s (± 3.55%) ~ 2.94s 3.24s p=0.810 n=6
Total Time 51.95s (± 0.32%) 51.96s (± 0.27%) ~ 51.72s 52.10s p=0.936 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 259,181 259,260 +79 (+ 0.03%) ~ ~ p=0.001 n=6
Types 105,173 105,179 +6 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 428,834k (± 0.01%) 428,889k (± 0.02%) ~ 428,840k 429,022k p=0.109 n=6
Parse Time 4.08s (± 0.88%) 4.06s (± 0.70%) ~ 4.02s 4.09s p=0.334 n=6
Bind Time 1.64s (± 1.05%) 1.62s (± 2.27%) ~ 1.57s 1.66s p=0.292 n=6
Check Time 22.34s (± 0.29%) 22.39s (± 0.23%) ~ 22.32s 22.47s p=0.335 n=6
Emit Time 1.70s (± 1.25%) 1.71s (± 2.65%) ~ 1.64s 1.78s p=0.868 n=6
Total Time 29.77s (± 0.27%) 29.78s (± 0.33%) ~ 29.63s 29.94s p=0.747 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 35 35 ~ ~ ~ p=1.000 n=6
Symbols 224,565 224,648 +83 (+ 0.04%) ~ ~ p=0.001 n=6
Types 93,734 93,737 +3 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 369,824k (± 0.03%) 369,817k (± 0.02%) ~ 369,723k 369,911k p=0.936 n=6
Parse Time 2.79s (± 1.25%) 2.81s (± 0.50%) ~ 2.79s 2.83s p=0.258 n=6
Bind Time 1.58s (± 0.77%) 1.58s (± 0.76%) ~ 1.57s 1.60s p=0.344 n=6
Check Time 15.72s (± 0.18%) 15.74s (± 0.43%) ~ 15.65s 15.83s p=0.868 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.09s (± 0.26%) 20.13s (± 0.38%) ~ 20.04s 20.23s p=0.470 n=6
vscode - node (v18.15.0, x64)
Errors 0 4 🔻+4 (+ ∞%) ~ ~ p=0.001 n=6
Symbols 2,852,988 2,853,108 +120 (+ 0.00%) ~ ~ p=0.001 n=6
Types 967,875 967,864 -11 (- 0.00%) ~ ~ p=0.001 n=6
Memory used 3,025,052k (± 0.00%) 3,025,341k (± 0.00%) +289k (+ 0.01%) 3,025,306k 3,025,367k p=0.005 n=6
Parse Time 13.79s (± 0.26%) 13.78s (± 0.29%) ~ 13.72s 13.83s p=0.936 n=6
Bind Time 4.16s (± 1.94%) 4.18s (± 2.44%) ~ 4.10s 4.32s p=1.000 n=6
Check Time 74.74s (± 2.64%) 74.89s (± 2.39%) ~ 72.99s 77.49s p=1.000 n=6
Emit Time 22.38s (± 8.58%) 22.11s (± 7.86%) ~ 19.89s 23.77s p=0.630 n=6
Total Time 115.07s (± 0.11%) 114.96s (± 0.28%) ~ 114.63s 115.41s p=0.378 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 266,914 266,963 +49 (+ 0.02%) ~ ~ p=0.001 n=6
Types 108,685 108,651 -34 (- 0.03%) ~ ~ p=0.001 n=6
Memory used 411,880k (± 0.01%) 411,883k (± 0.01%) ~ 411,828k 411,942k p=0.936 n=6
Parse Time 3.82s (± 1.06%) 3.84s (± 0.94%) ~ 3.78s 3.88s p=0.518 n=6
Bind Time 1.65s (± 0.71%) 1.67s (± 0.62%) ~ 1.65s 1.68s p=0.058 n=6
Check Time 17.03s (± 0.37%) 17.01s (± 0.12%) ~ 16.99s 17.04s p=0.686 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.50s (± 0.25%) 22.52s (± 0.26%) ~ 22.44s 22.58s p=1.000 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 523,429 523,437 +8 (+ 0.00%) ~ ~ p=0.001 n=6
Types 177,955 177,952 -3 (- 0.00%) ~ ~ p=0.001 n=6
Memory used 461,733k (± 0.06%) 461,633k (± 0.06%) ~ 461,336k 461,942k p=0.689 n=6
Parse Time 3.17s (± 0.59%) 3.16s (± 0.77%) ~ 3.13s 3.20s p=0.517 n=6
Bind Time 1.19s 1.16s (± 0.35%) -0.03s (- 2.38%) 1.16s 1.17s p=0.002 n=6
Check Time 18.21s (± 0.33%) 18.23s (± 0.29%) ~ 18.18s 18.32s p=0.872 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.57s (± 0.19%) 22.56s (± 0.29%) ~ 22.47s 22.65s p=0.688 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/58084/merge:

Something interesting changed - please have a look.

Details

jupyterlab/jupyterlab

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

packages/ui-components/examples/simple-windowed-list/tsconfig.json

packages/translation/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/base.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/base.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/gettext.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/gettext.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/manager.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/manager.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/server.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/server.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/tokens.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/lib/utils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/translation/src/utils.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/translation' or its corresponding type declarations.

packages/statusbar/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/statusbar.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/statusbar.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/statusbar/src/tokens.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/statusbar' or its corresponding type declarations.

packages/services/examples/typescript-browser-with-output/tsconfig.json

packages/services/examples/browser/tsconfig.json

packages/rendermime/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/attachmentmodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/attachmentmodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/factories.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/factories.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/latex.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/latex.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/mimemodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/mimemodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/outputmodel.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/outputmodel.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/registry.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/registry.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/renderers.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/renderers.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/testutils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/testutils.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/tokens.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/tokens.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/lib/widgets.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/rendermime/src/widgets.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/apputils' or its corresponding type declarations.
  • error TS2307: Cannot find module '@jupyterlab/rendermime' or its corresponding type declarations.
  • error TS7006: Parameter 'content' implicitly has an 'any' type.

packages/coreutils/tsconfig.test.json

  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/activitymonitor.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/activitymonitor.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/index.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/index.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/interfaces.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/interfaces.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/lru.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/lru.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/markdowncodeblocks.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/markdowncodeblocks.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/pageconfig.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/pageconfig.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/path.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/path.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/signal.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/signal.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/testutils.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/testutils.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/text.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/text.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/time.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/time.ts'.
    • Project Scope
  • error TS6305: Output file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/lib/url.d.ts' has not been built from source file '/mnt/ts_downloads/_/m/jupyterlab/packages/coreutils/src/url.ts'.
    • Project Scope
  • error TS2307: Cannot find module '@jupyterlab/coreutils' or its corresponding type declarations.
  • error TS2307: Cannot find module '@jupyterlab/coreutils/lib/testutils' or its corresponding type declarations.
  • error TS7006: Parameter 'sender' implicitly has an 'any' type.
  • error TS7006: Parameter 'args' implicitly has an 'any' type.

packages/codeeditor/tsconfig.test.json

examples/filebrowser/src/tsconfig.json

examples/console/src/tsconfig.json

microsoft/vscode

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

src/tsconfig.tsec.json

src/tsconfig.monaco.json

src/tsconfig.json

@Renegade334
Copy link
Contributor Author

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

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

perf

  • Small increase in symbol counts, likely primarily due to new method overrides on Array.prototype and String.prototype
  • No significant change in overall performance

top400

  • jupyterlab:
    • DateTimeFormatOptions dateStyle and timeStyle properties no longer present in ES2020.Intl
      • fix: add ES2021.Intl to libs
  • vscode:
    • ResolvedCollatorOptions numeric property may be undefined
      • fix: ?? false
    • UnicodeBCP47LocaleIdentifier no longer exists
      • fix: replace all instances with string

@jakebailey
Copy link
Member

UnicodeBCP47LocaleIdentifier no longer exists

  • fix: replace all instances with string

We definitely do not want to be deleting types from lib.d.ts.

@Renegade334
Copy link
Contributor Author

Renegade334 commented Jun 12, 2024

Keep as deprecated exports, then?

@jakebailey
Copy link
Member

Yes, or keep using (if it makes sense).

@sandersn sandersn requested review from andrewbranch and sandersn and removed request for andrewbranch June 13, 2024 13:02
@sandersn sandersn self-assigned this Jun 13, 2024
*
* See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
*/
type UnicodeBCP47LocaleIdentifier = string;
Copy link
Contributor Author

@Renegade334 Renegade334 Jun 13, 2024

Choose a reason for hiding this comment

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

review: either revert or add deprecated type export.

While this type doesn't do any harm, primitive aliasing feels like a paradigm that should either be used everywhere in the library, or not used at all. This is the only case of it throughout lib.d.ts.

A very similar change was made to the library previously (https://github.com/microsoft/TypeScript/pull/52996/files#r1408503669) and didn't seem to cause too much consternation.

@wartab
Copy link

wartab commented Jul 11, 2024

I don't know if this is related, but since TypeScript 5.5, we have some issue with changes in Number.ToLocaleString().

// Defined once to avoid copy pasting this everywhere.
const percentOptions = {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2,
    style: "percent",
};

let output1 = number1.toLocaleString(undefined, percentOptions);
let output2 = number2.toLocaleString(undefined, percentOptions);
let output3 = number3.toLocaleString(undefined, percentOptions);

Typescript will shout about this, because "percent" is narrowed to string instead of the subset of valid style values.
Now, of course, we can write this, but nobody is going to remember this from memory and this is just TypeScript getting in the way.

const percentOptions = {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2,
    style: "percent" as keyof Intl.NumberFormatOptionsStyleRegistry,
};

Sorry if this is the wrong place to mention this, but I wasn't sure if opening a new issue was the way to go.

@Renegade334
Copy link
Contributor Author

@wartab: This was intentionally changed previously to make the enum-style string option types consistent.

For your example, using as const would be simpler than as keyof..., or you could influence the shape of the options object as a whole by using a satisfies clause or explicitly typing the variable as an Intl.NumberFormatOptions object.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
Status: Waiting on reviewers
Development

Successfully merging this pull request may close these issues.

6 participants