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

Improve optionality detection in mapped type indexed access substitutions #57946

Merged
merged 9 commits into from
Mar 27, 2024

Conversation

ahejlsberg
Copy link
Member

Fixes #57860.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Mar 26, 2024
@typescript-bot typescript-bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Mar 26, 2024
@@ -14115,7 +14115,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}

function getModifiersTypeOptionality(type: Type): number {
return type.flags & TypeFlags.Intersection ? Math.max(...map((type as IntersectionType).types, getModifiersTypeOptionality)) :
return type.flags & TypeFlags.Intersection ? Math.min(...map((type as IntersectionType).types, getModifiersTypeOptionality)) :
Copy link
Member Author

Choose a reason for hiding this comment

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

Only claim that intersections add optionality when all constituents do so. Previously, optionality in any constituent would cause us to claim optionality for the entire intersection, but that is too aggressive.

return addOptionality(instantiatedTemplateType, /*isProperty*/ true, getCombinedMappedTypeOptionality(objectType) > 0);
const isOptional = getMappedTypeOptionality(objectType) > 0 || (isGenericType(objectType) ?
getModifiersTypeOptionality(getModifiersTypeFromMappedType(objectType)) > 0 :
couldAccessOptionalProperty(objectType, index));
Copy link
Member Author

Choose a reason for hiding this comment

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

When processing a substitution for { [P in K]: E}[X], when { [P in K]: E } is non-generic, examine the actual properties selected by X to see if some are optional.

@ahejlsberg
Copy link
Member Author

@typescript-bot test top200
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 26, 2024

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

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

@typescript-bot
Copy link
Collaborator

@ahejlsberg Here are the results of running the user tests comparing main and refs/pull/57946/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

There were interesting changes:

Branch only errors:

Package: vue3-carousel-3d
Error:

Error: 
/mnt/vss/_work/1/DefinitelyTyped/types/vue3-carousel-3d/vue3-carousel-3d-tests.ts
  7:9  error  TypeScript@local compile error: 
Type 'Component<Carousel3dProps>' is not assignable to type 'Component<any, any, any, ComputedOptions, MethodOptions, {}, any>'.
  Type 'ComponentOptions<Carousel3dProps, any, any, ComputedOptions, MethodOptions, any, any, any, any>' is not assignable to type 'Component<any, any, any, ComputedOptions, MethodOptions, {}, any>'.
    Type 'ComponentOptions<Carousel3dProps, any, any, ComputedOptions, MethodOptions, any, any, any, any>' is not assignable to type 'FunctionalComponent<any, {}, any, {}>'.
      Type 'ComponentOptionsBase<Carousel3dProps, any, any, ComputedOptions, MethodOptions, any, any, any, string, any, {}, string, {}> & ThisType<...>' provides no match for the signature '(props: any, ctx: Omit<{ attrs: Data; slots: Readonly<InternalSlots>; emit: (event: string, ...args: any[]) => void; expose: (exposed?: Record<string, any> | undefined) => void; }, "expose">): any'  @definitelytyped/expect
  8:9  error  TypeScript@local compile error: 
Type 'Component<SlideProps>' is not assignable to type 'Component<any, any, any, ComputedOptions, MethodOptions, {}, any>'.
  Type 'ComponentOptions<SlideProps, any, any, ComputedOptions, MethodOptions, any, any, any, any>' is not assignable to type 'Component<any, any, any, ComputedOptions, MethodOptions, {}, any>'.
    Type 'ComponentOptions<SlideProps, any, any, ComputedOptions, MethodOptions, any, any, any, any>' is not assignable to type 'FunctionalComponent<any, {}, any, {}>'.
      Type 'ComponentOptionsBase<SlideProps, any, any, ComputedOptions, MethodOptions, any, any, any, string, any, {}, string, {}> & ThisType<...>' provides no match for the signature '(props: any, ctx: Omit<{ attrs: Data; slots: Readonly<InternalSlots>; emit: (event: string, ...args: any[]) => void; expose: (exposed?: Record<string, any> | undefined) => void; }, "expose">): any'                      @definitelytyped/expect

✖ 2 problems (2 errors, 0 warnings)

    at combineErrorsAndWarnings (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240326/node_modules/@definitelytyped/dtslint/dist/index.js:194:28)
    at runTests (/mnt/vss/_work/1/DefinitelyTyped/node_modules/.pnpm/@definitelytyped+dtslint@0.2.19_typescript@5.5.0-dev.20240326/node_modules/@definitelytyped/dtslint/dist/index.js:186:20)

You can check the log here.

@typescript-bot
Copy link
Collaborator

@ahejlsberg
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
Angular - node (v18.15.0, x64)
Memory used 295,493k (± 0.01%) 295,478k (± 0.00%) ~ 295,469k 295,499k p=0.148 n=6
Parse Time 2.66s (± 0.24%) 2.66s (± 0.28%) ~ 2.65s 2.67s p=0.718 n=6
Bind Time 0.82s (± 0.63%) 0.83s (± 1.19%) ~ 0.82s 0.84s p=0.417 n=6
Check Time 8.18s (± 0.24%) 8.17s (± 0.25%) ~ 8.15s 8.20s p=0.871 n=6
Emit Time 7.06s (± 0.44%) 7.04s (± 0.25%) ~ 7.02s 7.07s p=0.168 n=6
Total Time 18.73s (± 0.14%) 18.71s (± 0.18%) ~ 18.67s 18.75s p=0.687 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 192,528k (± 0.81%) 192,500k (± 0.75%) ~ 191,855k 195,447k p=0.810 n=6
Parse Time 1.64s (± 0.83%) 1.65s (± 1.31%) ~ 1.61s 1.67s p=0.681 n=6
Bind Time 0.86s (± 1.41%) 0.86s (± 0.73%) ~ 0.85s 0.87s p=0.403 n=6
Check Time 11.29s (± 0.47%) 11.31s (± 0.49%) ~ 11.21s 11.37s p=0.253 n=6
Emit Time 3.15s (± 0.45%) 3.15s (± 0.39%) ~ 3.14s 3.17s p=0.615 n=6
Total Time 16.94s (± 0.43%) 16.97s (± 0.47%) ~ 16.82s 17.04s p=0.334 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,372k (± 0.00%) 347,375k (± 0.00%) ~ 347,358k 347,397k p=0.748 n=6
Parse Time 2.50s (± 0.22%) 2.48s (± 0.49%) -0.01s (- 0.47%) 2.46s 2.49s p=0.038 n=6
Bind Time 0.92s (± 0.59%) 0.93s (± 0.44%) ~ 0.92s 0.93s p=0.282 n=6
Check Time 7.00s (± 0.41%) 7.02s (± 0.32%) ~ 7.00s 7.06s p=0.195 n=6
Emit Time 4.07s (± 0.52%) 4.08s (± 0.73%) ~ 4.04s 4.12s p=0.515 n=6
Total Time 14.50s (± 0.18%) 14.51s (± 0.20%) ~ 14.49s 14.56s p=0.418 n=6
TFS - node (v18.15.0, x64)
Memory used 302,726k (± 0.02%) 302,701k (± 0.01%) ~ 302,673k 302,749k p=0.521 n=6
Parse Time 2.40s (± 1.38%) 2.44s (± 0.70%) +0.04s (+ 1.81%) 2.42s 2.47s p=0.043 n=6
Bind Time 1.19s (± 1.30%) 1.21s (± 0.69%) +0.03s (+ 2.10%) 1.20s 1.22s p=0.024 n=6
Check Time 7.46s (± 0.49%) 7.43s (± 0.26%) ~ 7.41s 7.46s p=0.145 n=6
Emit Time 4.30s (± 0.50%) 4.28s (± 0.55%) ~ 4.26s 4.31s p=0.223 n=6
Total Time 15.35s (± 0.34%) 15.37s (± 0.18%) ~ 15.34s 15.41s p=0.470 n=6
material-ui - node (v18.15.0, x64)
Memory used 509,893k (± 0.00%) 509,879k (± 0.01%) ~ 509,830k 509,918k p=0.575 n=6
Parse Time 2.66s (± 0.37%) 2.65s (± 0.57%) ~ 2.62s 2.66s p=0.070 n=6
Bind Time 0.99s (± 0.83%) 0.98s (± 1.54%) ~ 0.97s 1.01s p=0.739 n=6
Check Time 17.20s (± 0.34%) 17.30s (± 0.49%) ~ 17.20s 17.44s p=0.065 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.85s (± 0.27%) 20.93s (± 0.44%) ~ 20.82s 21.09s p=0.126 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,737,587k (± 0.00%) 1,737,556k (± 0.00%) ~ 1,737,543k 1,737,582k p=0.128 n=6
Parse Time 7.77s (± 0.41%) 7.76s (± 0.68%) ~ 7.70s 7.85s p=0.469 n=6
Bind Time 2.77s (± 0.48%) 2.78s (± 1.61%) ~ 2.75s 2.87s p=0.869 n=6
Check Time 66.30s (± 0.41%) 66.17s (± 0.67%) ~ 65.68s 66.94s p=0.471 n=6
Emit Time 0.15s (± 3.36%) 0.15s (± 3.53%) ~ 0.15s 0.16s p=0.640 n=6
Total Time 76.99s (± 0.36%) 76.86s (± 0.55%) ~ 76.31s 77.59s p=0.336 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,388,890k (± 0.05%) 2,388,776k (± 0.03%) ~ 2,388,114k 2,390,024k p=0.810 n=6
Parse Time 5.05s (± 0.69%) 5.01s (± 1.04%) ~ 4.94s 5.07s p=0.199 n=6
Bind Time 1.90s (± 0.99%) 1.90s (± 0.61%) ~ 1.89s 1.92s p=0.285 n=6
Check Time 33.55s (± 0.49%) 33.51s (± 0.30%) ~ 33.37s 33.64s p=0.471 n=6
Emit Time 2.65s (± 0.77%) 2.65s (± 0.70%) ~ 2.63s 2.68s p=0.744 n=6
Total Time 43.17s (± 0.25%) 43.09s (± 0.16%) ~ 43.00s 43.16s p=0.066 n=6
self-compiler - node (v18.15.0, x64)
Memory used 414,550k (± 0.01%) 414,627k (± 0.02%) +78k (+ 0.02%) 414,559k 414,773k p=0.008 n=6
Parse Time 4.18s (± 1.04%) 4.18s (± 0.63%) ~ 4.14s 4.22s p=1.000 n=6
Bind Time 1.59s (± 1.47%) 1.59s (± 1.52%) ~ 1.56s 1.63s p=1.000 n=6
Check Time 22.17s (± 0.41%) 22.15s (± 0.36%) ~ 22.04s 22.25s p=0.688 n=6
Emit Time 1.68s (± 1.15%) 1.69s (± 1.89%) ~ 1.65s 1.74s p=0.418 n=6
Total Time 29.64s (± 0.45%) 29.63s (± 0.34%) ~ 29.45s 29.72s p=0.936 n=6
vscode - node (v18.15.0, x64)
Memory used 2,892,388k (± 0.00%) 2,892,417k (± 0.00%) ~ 2,892,365k 2,892,456k p=0.810 n=6
Parse Time 15.95s (± 0.41%) 15.93s (± 0.22%) ~ 15.89s 15.97s p=0.378 n=6
Bind Time 5.06s (± 0.47%) 5.05s (± 0.41%) ~ 5.02s 5.07s p=0.331 n=6
Check Time 86.95s (± 0.16%) 86.88s (± 0.57%) ~ 86.41s 87.74s p=0.630 n=6
Emit Time 23.69s (± 0.56%) 23.77s (± 0.46%) ~ 23.64s 23.90s p=0.261 n=6
Total Time 131.65s (± 0.19%) 131.63s (± 0.40%) ~ 131.15s 132.61s p=0.630 n=6
webpack - node (v18.15.0, x64)
Memory used 408,329k (± 0.01%) 408,322k (± 0.01%) ~ 408,292k 408,351k p=0.936 n=6
Parse Time 3.89s (± 0.99%) 3.90s (± 0.39%) ~ 3.87s 3.91s p=0.683 n=6
Bind Time 1.66s (± 1.37%) 1.68s (± 0.88%) ~ 1.65s 1.69s p=0.137 n=6
Check Time 16.71s (± 0.20%) 16.68s (± 0.35%) ~ 16.58s 16.75s p=0.374 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.26s (± 0.33%) 22.26s (± 0.25%) ~ 22.16s 22.33s p=0.377 n=6
xstate - node (v18.15.0, x64)
Memory used 513,029k (± 0.01%) 513,084k (± 0.02%) ~ 512,974k 513,245k p=0.298 n=6
Parse Time 3.97s (± 1.04%) 3.97s (± 1.06%) ~ 3.92s 4.02s p=1.000 n=6
Bind Time 1.85s (± 1.16%) 1.86s (± 0.79%) ~ 1.84s 1.88s p=0.514 n=6
Check Time 3.38s (± 0.77%) 3.36s (± 0.50%) ~ 3.34s 3.38s p=0.256 n=6
Emit Time 0.09s (± 5.95%) 0.09s (± 4.62%) ~ 0.08s 0.09s p=0.595 n=6
Total Time 9.29s (± 0.70%) 9.28s (± 0.42%) ~ 9.24s 9.35s p=0.809 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@ahejlsberg Here are the results of running the top 400 repos comparing main and refs/pull/57946/merge:

Something interesting changed - please have a look.

Details

vuetifyjs/vuetify

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

packages/vuetify/tsconfig.json

  • error TS2345: Argument of type 'Ref<CreateComponentPublicInstance<{ style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { activatorEl: Ref<HTMLElement | undefined>; scrimEl: Ref<HTMLElement | undefined>; target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>; animateClick: () => void; contentEl: Ref<HTMLElement | undefined>; globalTop: Readonly<Ref<boolean>>; localTop: ComputedRef<boolean>; updateLocation: Ref<((e: Event) => void) | undefined>; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { 'click:outside': (e: MouseEvent) => true; 'update:modelValue': (value: boolean) => true; afterLeave: () => true; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnClick: boolean; openOnHover: boolean; openOnFocus: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; }, true, {}, SlotsType<Partial<MakeSlots<OverlaySlots>>>, OptionTypesType<{}, {}, {}, {}, {}, {}>, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { activatorEl: Ref<HTMLElement | undefined>; scrimEl: Ref<HTMLElement | undefined>; target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>; animateClick: () => void; contentEl: Ref<HTMLElement | undefined>; globalTop: Readonly<Ref<boolean>>; localTop: ComputedRef<boolean>; updateLocation: Ref<((e: Event) => void) | undefined>; }, {}, {}, {}, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnClick: boolean; openOnHover: boolean; openOnFocus: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; }> | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2345: Argument of type 'Ref<({ $: ComponentInternalInstance; $data: {}; $props: Partial<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; }> & Omit<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & { style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, DefaultKeys<Omit<{ focused: BooleanConstructor; 'onUpdate:focused': PropType<(args_0: boolean) => void>; disabled: { type: PropType<boolean | null>; default: null; }; error: BooleanConstructor; errorMessages: { type: PropType<string | readonly string[] | null>; default: () => never[]; }; maxErrors: { type: (StringConstructor | NumberConstructor)[]; default: number; }; name: StringConstructor; label: StringConstructor; readonly: { type: PropType<boolean | null>; default: null; }; rules: { type: PropType<readonly ValidationRule[]>; default: () => never[]; }; modelValue: null; validateOn: PropType<ValidationProps["validateOn"]>; validationValue: null; density: { type: PropType<Density>; default: string; validator: (v: any) => boolean; }; class: PropType<ClassValue>; style: { type: PropType<StyleValue>; default: null; }; id: StringConstructor; appendIcon: PropType<IconValue>; centerAffix: { type: BooleanConstructor; default: boolean; }; prependIcon: PropType<IconValue>; hideDetails: PropType<boolean | "auto">; hideSpinButtons: BooleanConstructor; hint: StringConstructor; persistentHint: BooleanConstructor; messages: { type: PropType<string | readonly string[]>; default: () => never[]; }; direction: { type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; }; 'onClick:prepend': PropType<(args_0: MouseEvent) => void>; 'onClick:append': PropType<(args_0: MouseEvent) => void>; }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:prepend" | "v-slot:append" | "v-slot:message" | "v-slot:details">>>; $attrs: Data; $refs: Data; $slots: Readonly<{ default?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; prepend?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; append?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; details?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; message?: ((arg: VMessageSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; }>; $root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: string, ...args: any[]) => void; $el: any; $options: ComponentOptionsBase<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, { reset: () => Promise<void>; resetValidation: () => Promise<void>; validate: (silent?: boolean) => Promise<string[]>; isValid: ComputedRef<boolean | null>; errorMessages: ComputedRef<string[]>; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Omit<{ 'update:modelValue': (value: any) => true; }, ToListeners<"$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:prepend" | "v-slot:append" | "v-slot:message" | "v-slot:details">>, string, { style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; }, {}, string, SlotsType<Partial<MakeSlots<VInputSlots>>>> & MergedComponentOptionsOverride; $forceUpdate: () => void; $nextTick: <T = void, R = void>(this: T, fn?: ((this: T) => R) | undefined) => Promise<Awaited<R>>; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: WatchOptions<boolean> | undefined): WatchStopHandle; } & Omit<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, "reset" | "isValid" | "errorMessages" | "validate" | "resetValidation"> & ShallowUnwrapRef<{ reset: () => Promise<void>; resetValidation: () => Promise<void>; validate: (silent?: boolean) => Promise<string[]>; isValid: ComputedRef<boolean | null>; errorMessages: ComputedRef<string[]>; }> & ExtractComputedReturns<{}> & ComponentCustomProperties & {} & GenericProps<{ modelValue?: unknown; 'onUpdate:modelValue'?: ((value: unknown) => void) | undefined; }, VInputSlots>) | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2345: Argument of type 'Ref<CreateComponentPublicInstance<{ symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { group: GroupItemProvide | null; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { 'group:selected': (val: { value: boolean; }) => true; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; active: boolean; disabled: boolean; tag: string; rounded: string | number | boolean; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; }, true, {}, SlotsType<Partial<MakeSlots<VBtnSlots>>>, OptionTypesType<{}, {}, {}, {}, {}, {}>, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { group: GroupItemProvide | null; }, {}, {}, {}, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; active: boolean; disabled: boolean; tag: string; rounded: string | number | boolean; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; }> | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2322: Type 'ComponentPublicInstanceConstructor<CreateComponentPublicInstance<Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, {}, true, {}, {}, OptionTypesType<{}, {}, {}, {}, {}, {}>, Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, {}, {}, {}, {}>, any, any, any, ComputedOptions, MethodOptions> & ComponentOptionsBase<Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps & FilterPropsOptions<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>, ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>' is not assignable to type 'IconComponent'.
  • error TS2769: No overload matches this call.

packages/vuetify/tsconfig.dist.json

  • error TS2345: Argument of type 'Ref<CreateComponentPublicInstance<{ style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { activatorEl: Ref<HTMLElement | undefined>; scrimEl: Ref<HTMLElement | undefined>; target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>; animateClick: () => void; contentEl: Ref<HTMLElement | undefined>; globalTop: Readonly<Ref<boolean>>; localTop: ComputedRef<boolean>; updateLocation: Ref<((e: Event) => void) | undefined>; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { 'click:outside': (e: MouseEvent) => true; 'update:modelValue': (value: boolean) => true; afterLeave: () => true; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnClick: boolean; openOnHover: boolean; openOnFocus: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; }, true, {}, SlotsType<Partial<MakeSlots<OverlaySlots>>>, OptionTypesType<{}, {}, {}, {}, {}, {}>, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref<boolean>; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref<boolean>; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { activatorEl: Ref<HTMLElement | undefined>; scrimEl: Ref<HTMLElement | undefined>; target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>; animateClick: () => void; contentEl: Ref<HTMLElement | undefined>; globalTop: Readonly<Ref<boolean>>; localTop: ComputedRef<boolean>; updateLocation: Ref<((e: Event) => void) | undefined>; }, {}, {}, {}, { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnClick: boolean; openOnHover: boolean; openOnFocus: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; }> | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2345: Argument of type 'Ref<({ $: ComponentInternalInstance; $data: {}; $props: Partial<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; }> & Omit<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & { style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, DefaultKeys<Omit<{ focused: BooleanConstructor; 'onUpdate:focused': PropType<(args_0: boolean) => void>; disabled: { type: PropType<boolean | null>; default: null; }; error: BooleanConstructor; errorMessages: { type: PropType<string | readonly string[] | null>; default: () => never[]; }; maxErrors: { type: (StringConstructor | NumberConstructor)[]; default: number; }; name: StringConstructor; label: StringConstructor; readonly: { type: PropType<boolean | null>; default: null; }; rules: { type: PropType<readonly ValidationRule[]>; default: () => never[]; }; modelValue: null; validateOn: PropType<ValidationProps["validateOn"]>; validationValue: null; density: { type: PropType<Density>; default: string; validator: (v: any) => boolean; }; class: PropType<ClassValue>; style: { type: PropType<StyleValue>; default: null; }; id: StringConstructor; appendIcon: PropType<IconValue>; centerAffix: { type: BooleanConstructor; default: boolean; }; prependIcon: PropType<IconValue>; hideDetails: PropType<boolean | "auto">; hideSpinButtons: BooleanConstructor; hint: StringConstructor; persistentHint: BooleanConstructor; messages: { type: PropType<string | readonly string[]>; default: () => never[]; }; direction: { type: PropType<"horizontal" | "vertical">; default: string; validator: (v: any) => boolean; }; 'onClick:prepend': PropType<(args_0: MouseEvent) => void>; 'onClick:append': PropType<(args_0: MouseEvent) => void>; }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:prepend" | "v-slot:append" | "v-slot:message" | "v-slot:details">>>; $attrs: Data; $refs: Data; $slots: Readonly<{ default?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; prepend?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; append?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; details?: ((arg: VInputSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; message?: ((arg: VMessageSlot) => VNode<RendererNode, RendererElement, { [key: string]: any; }>[]) | undefined; }>; $root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: string, ...args: any[]) => void; $el: any; $options: ComponentOptionsBase<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, { reset: () => Promise<void>; resetValidation: () => Promise<void>; validate: (silent?: boolean) => Promise<string[]>; isValid: ComputedRef<boolean | null>; errorMessages: ComputedRef<string[]>; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Omit<{ 'update:modelValue': (value: any) => true; }, ToListeners<"$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:prepend" | "v-slot:append" | "v-slot:message" | "v-slot:details">>, string, { style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; }, {}, string, SlotsType<Partial<MakeSlots<VInputSlots>>>> & MergedComponentOptionsOverride; $forceUpdate: () => void; $nextTick: <T = void, R = void>(this: T, fn?: ((this: T) => R) | undefined) => Promise<Awaited<R>>; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: WatchOptions<boolean> | undefined): WatchStopHandle; } & Omit<{ style: StyleValue; error: boolean; disabled: boolean | null; messages: string | readonly string[]; focused: boolean; errorMessages: string | readonly string[] | null; maxErrors: string | number; readonly: boolean | null; rules: readonly ValidationRule[]; density: Density; direction: "horizontal" | "vertical"; centerAffix: boolean; hideSpinButtons: boolean; persistentHint: boolean; } & { class?: any; id?: string | undefined; label?: string | undefined; name?: string | undefined; 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined; validateOn?: ValidateOnValue | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | "lazy" | undefined; validationValue?: any; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined; 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined; hint?: string | undefined; hideDetails?: boolean | "auto" | undefined; } & {}, "reset" | "isValid" | "errorMessages" | "validate" | "resetValidation"> & ShallowUnwrapRef<{ reset: () => Promise<void>; resetValidation: () => Promise<void>; validate: (silent?: boolean) => Promise<string[]>; isValid: ComputedRef<boolean | null>; errorMessages: ComputedRef<string[]>; }> & ExtractComputedReturns<{}> & ComponentCustomProperties & {} & GenericProps<{ modelValue?: unknown; 'onUpdate:modelValue'?: ((value: unknown) => void) | undefined; }, VInputSlots>) | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2345: Argument of type 'Ref<CreateComponentPublicInstance<{ symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { group: GroupItemProvide | null; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { 'group:selected': (val: { value: boolean; }) => true; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; active: boolean; disabled: boolean; tag: string; rounded: string | number | boolean; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; }, true, {}, SlotsType<Partial<MakeSlots<VBtnSlots>>>, OptionTypesType<{}, {}, {}, {}, {}, {}>, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; disabled: boolean; tag: string; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; } & { class?: any; text?: string | undefined; width?: string | number | undefined; height?: string | number | undefined; active?: boolean | undefined; value?: any; theme?: string | undefined; href?: string | undefined; color?: string | undefined; loading?: string | boolean | undefined; icon?: boolean | IconValue | undefined; to?: RouteLocationRaw | undefined; border?: string | number | boolean | undefined; position?: "fixed" | "sticky" | "absolute" | "relative" | "static" | undefined; rounded?: string | number | boolean | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; elevation?: string | number | undefined; location?: Anchor | undefined; selectedClass?: string | undefined; prependIcon?: IconValue | undefined; appendIcon?: IconValue | undefined; } & { $children?: VNodeChild | (() => VNodeChild) | { default?: (() => VNodeChild) | undefined; prepend?: (() => VNodeChild) | undefined; append?: (() => VNodeChild) | undefined; loader?: (() => VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => VNodeChild) | undefined; prepend?: false | (() => VNodeChild) | undefined; append?: false | (() => VNodeChild) | undefined; loader?: false | (() => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => VNodeChild) | undefined; "v-slot:prepend"?: false | (() => VNodeChild) | undefined; "v-slot:append"?: false | (() => VNodeChild) | undefined; "v-slot:loader"?: false | (() => VNodeChild) | undefined; } & { "onGroup:selected"?: ((val: { value: boolean; }) => any) | undefined; }, { group: GroupItemProvide | null; }, {}, {}, {}, { symbol: any; flat: boolean; replace: boolean; style: StyleValue; size: string | number; active: boolean; disabled: boolean; tag: string; rounded: string | number | boolean; variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">; block: boolean; exact: boolean; tile: boolean; density: Density; slim: boolean; stacked: boolean; ripple: boolean | { class: string; } | undefined; }> | undefined>' is not assignable to parameter of type 'Ref<HTMLElement | Omit<ComponentPublicInstance, "$slots" | "$emit"> | undefined>'.
  • error TS2322: Type 'ComponentPublicInstanceConstructor<CreateComponentPublicInstance<Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, {}, true, {}, {}, OptionTypesType<{}, {}, {}, {}, {}, {}>, Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, {}, {}, {}, {}>, any, any, any, ComputedOptions, MethodOptions> & ComponentOptionsBase<Readonly<ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>, () => Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps & FilterPropsOptions<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>, ExtractPropTypes<AppendDefault<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, {}>>>' is not assignable to type 'IconComponent'.
  • error TS2769: No overload matches this call.

packages/vuetify/tsconfig.checks.json

  • `error TS2345: Argument of type 'Ref<CreateComponentPublicInstance<{ style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined; closeDelay?: string | number | undefined; openDelay?: string | number | undefined; openOnClick?: boolean | undefined; openOnFocus?: boolean | undefined; contentProps?: any; attach?: string | boolean | Element | undefined; } & { $children?: VNodeChild | { default?: ((arg: { isActive: Ref; }) => VNodeChild) | undefined; activator?: ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | ((arg: { isActive: Ref; }) => VNodeChild); 'v-slots'?: { default?: false | ((arg: { isActive: Ref; }) => VNodeChild) | undefined; activator?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | ((arg: { isActive: Ref; }) => VNodeChild) | undefined; "v-slot:activator"?: false | ((arg: { isActive: boolean; props: Record<string, any>; }) => VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; onAfterLeave?: (() => any) | undefined; "onClick:outside"?: ((e: MouseEvent) => any) | undefined; }, { activatorEl: Ref<HTMLElement | undefined>; scrimEl: Ref<HTMLElement | undefined>; target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>; animateClick: () => void; contentEl: Ref<HTMLElement | undefined>; globalTop: Readonly<Ref>; localTop: ComputedRef; updateLocation: Ref<((e: Event) => void) | undefined>; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { 'click:outside': (e: MouseEvent) => true; 'update:modelValue': (value: boolean) => true; afterLeave: () => true; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & { style: StyleValue; disabled: boolean; absolute: boolean; transition: string | boolean | (TransitionProps & { component?: Component | undefined; }); zIndex: string | number; modelValue: boolean; origin: Anchor | "auto" | "overlap"; eager: boolean; location: Anchor; locationStrategy: "static" | LocationStrategyFn | "connected"; scrollStrategy: "close" | "none" | "block" | ScrollStrategyFn | "reposition"; activatorProps: Record<string, any>; openOnHover: boolean; closeOnContentClick: boolean; closeOnBack: boolean; contained: boolean; noClickAnimation: boolean; persistent: boolean; scrim: string | boolean; _disableGlobalStack: boolean; } & { class?: any; width?: string | number | undefined; height?: string | number | undefined; theme?: string | undefined; target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined; offset?: string | number | number[] | undefined; contentClass?: any; opacity?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; activator?: E
    :error: Truncated - see log for full output :error:

@ahejlsberg
Copy link
Member Author

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 27, 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 @ahejlsberg, the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@typescript-bot
Copy link
Collaborator

@ahejlsberg Here are the results of running the user tests comparing main and refs/pull/57946/merge:

There were infrastructure failures potentially unrelated to your change:

  • 1 instance of "Package install failed"

Otherwise...

Everything looks good!

@typescript-bot
Copy link
Collaborator

@ahejlsberg
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
Angular - node (v18.15.0, x64)
Memory used 295,554k (± 0.00%) 295,544k (± 0.00%) ~ 295,529k 295,557k p=0.127 n=6
Parse Time 2.66s (± 0.19%) 2.66s (± 0.19%) ~ 2.65s 2.66s p=1.000 n=6
Bind Time 0.83s (± 0.49%) 0.83s (± 0.49%) ~ 0.83s 0.84s p=1.000 n=6
Check Time 8.22s (± 0.17%) 8.20s (± 0.39%) ~ 8.17s 8.26s p=0.145 n=6
Emit Time 7.04s (± 0.17%) 7.03s (± 0.30%) ~ 7.00s 7.06s p=0.672 n=6
Total Time 18.74s (± 0.14%) 18.72s (± 0.15%) ~ 18.69s 18.76s p=0.255 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used 192,571k (± 0.73%) 192,026k (± 0.09%) ~ 191,918k 192,355k p=0.298 n=6
Parse Time 1.35s (± 1.45%) 1.37s (± 1.07%) ~ 1.35s 1.39s p=0.188 n=6
Bind Time 0.73s (± 0.56%) 0.73s (± 0.71%) ~ 0.72s 0.73s p=0.595 n=6
Check Time 9.49s (± 0.69%) 9.48s (± 0.75%) ~ 9.42s 9.62s p=0.469 n=6
Emit Time 2.63s (± 0.16%) 2.64s (± 0.31%) ~ 2.63s 2.65s p=0.056 n=6
Total Time 14.20s (± 0.38%) 14.21s (± 0.63%) ~ 14.15s 14.39s p=0.628 n=6
Monaco - node (v18.15.0, x64)
Memory used 347,421k (± 0.01%) 347,408k (± 0.01%) ~ 347,377k 347,427k p=0.298 n=6
Parse Time 2.49s (± 0.39%) 2.48s (± 0.59%) ~ 2.46s 2.50s p=0.241 n=6
Bind Time 0.93s (± 0.00%) 0.93s (± 0.44%) ~ 0.92s 0.93s p=0.405 n=6
Check Time 7.05s (± 0.25%) 7.03s (± 0.35%) ~ 7.00s 7.06s p=0.226 n=6
Emit Time 4.06s (± 0.30%) 4.07s (± 0.51%) ~ 4.05s 4.10s p=0.742 n=6
Total Time 14.53s (± 0.20%) 14.50s (± 0.33%) ~ 14.44s 14.55s p=0.421 n=6
TFS - node (v18.15.0, x64)
Memory used 302,772k (± 0.01%) 302,739k (± 0.01%) ~ 302,720k 302,758k p=0.173 n=6
Parse Time 2.42s (± 0.61%) 2.40s (± 0.53%) -0.02s (- 0.89%) 2.38s 2.42s p=0.030 n=6
Bind Time 1.22s (± 0.45%) 1.19s (± 0.46%) -0.03s (- 2.45%) 1.19s 1.20s p=0.004 n=6
Check Time 7.45s (± 0.51%) 7.47s (± 0.35%) ~ 7.43s 7.51s p=0.225 n=6
Emit Time 4.25s (± 0.55%) 4.25s (± 0.64%) ~ 4.22s 4.29s p=1.000 n=6
Total Time 15.35s (± 0.35%) 15.32s (± 0.22%) ~ 15.26s 15.35s p=0.422 n=6
material-ui - node (v18.15.0, x64)
Memory used 509,934k (± 0.00%) 509,934k (± 0.00%) ~ 509,901k 509,967k p=0.873 n=6
Parse Time 2.67s (± 0.50%) 2.67s (± 0.21%) ~ 2.66s 2.67s p=0.663 n=6
Bind Time 0.99s (± 0.64%) 0.98s (± 1.19%) ~ 0.96s 0.99s p=0.070 n=6
Check Time 17.29s (± 0.45%) 17.29s (± 0.43%) ~ 17.19s 17.39s p=1.000 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.95s (± 0.36%) 20.93s (± 0.35%) ~ 20.83s 21.04s p=0.627 n=6
mui-docs - node (v18.15.0, x64)
Memory used 1,737,816k (± 0.00%) 1,737,795k (± 0.00%) ~ 1,737,741k 1,737,827k p=0.575 n=6
Parse Time 7.78s (± 0.29%) 7.95s (± 5.20%) ~ 7.75s 8.79s p=1.000 n=6
Bind Time 2.80s (± 0.18%) 2.80s (± 0.58%) ~ 2.78s 2.82s p=0.933 n=6
Check Time 66.62s (± 0.40%) 66.44s (± 0.26%) ~ 66.30s 66.78s p=0.470 n=6
Emit Time 0.16s (± 3.29%) 0.15s (± 3.36%) ~ 0.15s 0.16s p=0.311 n=6
Total Time 77.35s (± 0.35%) 77.34s (± 0.52%) ~ 77.04s 78.09s p=0.688 n=6
self-build-src - node (v18.15.0, x64)
Memory used 2,392,195k (± 0.03%) 2,392,169k (± 0.04%) ~ 2,390,748k 2,393,228k p=0.936 n=6
Parse Time 6.03s (± 0.53%) 6.10s (± 0.59%) +0.07s (+ 1.08%) 6.04s 6.14s p=0.025 n=6
Bind Time 2.24s (± 0.94%) 2.26s (± 1.17%) ~ 2.24s 2.31s p=0.086 n=6
Check Time 39.42s (± 0.35%) 39.48s (± 0.42%) ~ 39.18s 39.62s p=0.471 n=6
Emit Time 3.14s (± 0.85%) 3.14s (± 0.71%) ~ 3.11s 3.17s p=0.747 n=6
Total Time 50.85s (± 0.27%) 50.99s (± 0.35%) ~ 50.69s 51.15s p=0.093 n=6
self-compiler - node (v18.15.0, x64)
Memory used 415,065k (± 0.01%) 415,131k (± 0.02%) ~ 415,050k 415,296k p=0.128 n=6
Parse Time 4.17s (± 0.24%) 4.16s (± 0.51%) ~ 4.13s 4.18s p=0.557 n=6
Bind Time 1.59s (± 0.73%) 1.59s (± 1.15%) ~ 1.56s 1.61s p=0.869 n=6
Check Time 22.36s (± 0.29%) 22.43s (± 0.26%) ~ 22.35s 22.52s p=0.092 n=6
Emit Time 1.67s (± 1.42%) 1.70s (± 2.29%) ~ 1.63s 1.74s p=0.254 n=6
Total Time 29.80s (± 0.15%) 29.88s (± 0.18%) +0.07s (+ 0.25%) 29.81s 29.95s p=0.030 n=6
vscode - node (v18.15.0, x64)
Memory used 2,892,690k (± 0.00%) 2,892,628k (± 0.00%) ~ 2,892,498k 2,892,763k p=0.149 n=6
Parse Time 15.88s (± 0.39%) 15.89s (± 0.41%) ~ 15.82s 15.99s p=0.872 n=6
Bind Time 5.01s (± 0.51%) 5.02s (± 0.35%) ~ 4.99s 5.04s p=0.935 n=6
Check Time 87.06s (± 0.63%) 86.79s (± 0.45%) ~ 86.45s 87.45s p=0.378 n=6
Emit Time 24.35s (± 7.78%) 23.76s (± 0.74%) ~ 23.54s 24.07s p=0.298 n=6
Total Time 132.31s (± 1.54%) 131.47s (± 0.45%) ~ 130.81s 132.44s p=0.630 n=6
webpack - node (v18.15.0, x64)
Memory used 408,382k (± 0.02%) 408,407k (± 0.01%) ~ 408,330k 408,491k p=0.575 n=6
Parse Time 3.89s (± 0.58%) 3.89s (± 0.50%) ~ 3.87s 3.92s p=0.869 n=6
Bind Time 1.68s (± 1.09%) 1.69s (± 0.72%) ~ 1.67s 1.70s p=0.800 n=6
Check Time 16.73s (± 0.20%) 16.78s (± 0.31%) ~ 16.72s 16.86s p=0.148 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.30s (± 0.25%) 22.35s (± 0.24%) ~ 22.31s 22.45s p=0.147 n=6
xstate - node (v18.15.0, x64)
Memory used 513,170k (± 0.01%) 513,123k (± 0.03%) ~ 513,006k 513,352k p=0.378 n=6
Parse Time 4.91s (± 0.51%) 4.89s (± 1.00%) ~ 4.83s 4.95s p=0.748 n=6
Bind Time 2.30s (± 0.81%) 2.30s (± 0.71%) ~ 2.28s 2.32s p=0.563 n=6
Check Time 4.22s (± 0.70%) 4.21s (± 0.73%) ~ 4.17s 4.25s p=0.574 n=6
Emit Time 0.11s (± 0.00%) 0.11s (± 0.00%) ~ 0.11s 0.11s p=1.000 n=6
Total Time 11.54s (± 0.44%) 11.51s (± 0.48%) ~ 11.42s 11.56s p=0.630 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@ahejlsberg Here are the results of running the top 400 repos comparing main and refs/pull/57946/merge:

Everything looks good!

@ahejlsberg
Copy link
Member Author

Tests and performance are clean. This is ready for a review.

@jakebailey
Copy link
Member

be careful merging, this will almost guaranteed break main like the last two PRs.

@jakebailey jakebailey closed this Mar 27, 2024
@jakebailey jakebailey reopened this Mar 27, 2024
@ahejlsberg ahejlsberg merged commit e418f8d into main Mar 27, 2024
25 checks passed
@ahejlsberg ahejlsberg deleted the fix57860 branch March 27, 2024 22:52
@Andarist Andarist mentioned this pull request May 13, 2024
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs that fix a bug with a specific milestone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[nightly][regression] Mapped type over generic key unexpectedly makes key treated as optional
4 participants