Skip to content

Commit 57901e6

Browse files
committed
fix: filter union component type
johnsoncodehk/vue-tsc#80
1 parent 257f150 commit 57901e6

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

packages/vscode-vue-languageservice/src/utils/localTypes.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ import type * as vue_2 from 'vue';
1212
import type * as vue_3 from '@vue/runtime-core';
1313
1414
type IsAny<T> = boolean extends (T extends never ? true : false) ? true : false;
15-
type IsComponent<T> = T extends (new (...args: any) => any) | FunctionalComponent<infer _> ? true : false;
16-
type ComponentKeys<T> = keyof { [K in keyof T as IsComponent<T[K]> extends false ? never : K]: any };
15+
type IsFunctionalComponent<T> = T extends FunctionalComponent<infer _> ? true : false;
16+
type IsConstructorComponent<T> = T extends new (...args: any) => any ? true : false;
17+
type IsComponent<T> = IsConstructorComponent<T> extends true ? true : IsFunctionalComponent<T> extends true ? true : false;
18+
type ComponentKeys<T> = keyof { [K in keyof T as IsComponent<T[K]> extends true ? K : never]: any };
1719
export type PickNotAny<A, B> = IsAny<A> extends true ? B : A;
1820
type AnyArray<T = any> = T[] | readonly T[];
1921
type NonUndefinedable<T> = T extends undefined ? never : T;

0 commit comments

Comments
 (0)