mirror of https://github.com/vuejs/core.git
types(internal): provide internal options for using `$el` type in language tools (#11814)
This commit is contained in:
parent
3c0d531fa7
commit
7a64b6734d
|
@ -1822,6 +1822,15 @@ describe('__typeRefs backdoor, object syntax', () => {
|
||||||
expectType<number>(refs.child.$refs.foo)
|
expectType<number>(refs.child.$refs.foo)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('__typeEl backdoor', () => {
|
||||||
|
const Comp = defineComponent({
|
||||||
|
__typeEl: {} as HTMLAnchorElement,
|
||||||
|
})
|
||||||
|
const c = new Comp()
|
||||||
|
|
||||||
|
expectType<HTMLAnchorElement>(c.$el)
|
||||||
|
})
|
||||||
|
|
||||||
defineComponent({
|
defineComponent({
|
||||||
props: {
|
props: {
|
||||||
foo: [String, null],
|
foo: [String, null],
|
||||||
|
|
|
@ -68,6 +68,7 @@ export type DefineComponent<
|
||||||
Provide extends ComponentProvideOptions = ComponentProvideOptions,
|
Provide extends ComponentProvideOptions = ComponentProvideOptions,
|
||||||
MakeDefaultsOptional extends boolean = true,
|
MakeDefaultsOptional extends boolean = true,
|
||||||
TypeRefs extends Record<string, unknown> = {},
|
TypeRefs extends Record<string, unknown> = {},
|
||||||
|
TypeEl extends Element = any,
|
||||||
> = ComponentPublicInstanceConstructor<
|
> = ComponentPublicInstanceConstructor<
|
||||||
CreateComponentPublicInstanceWithMixins<
|
CreateComponentPublicInstanceWithMixins<
|
||||||
Props,
|
Props,
|
||||||
|
@ -86,7 +87,8 @@ export type DefineComponent<
|
||||||
LC & GlobalComponents,
|
LC & GlobalComponents,
|
||||||
Directives & GlobalDirectives,
|
Directives & GlobalDirectives,
|
||||||
Exposed,
|
Exposed,
|
||||||
TypeRefs
|
TypeRefs,
|
||||||
|
TypeEl
|
||||||
>
|
>
|
||||||
> &
|
> &
|
||||||
ComponentOptionsBase<
|
ComponentOptionsBase<
|
||||||
|
@ -214,6 +216,7 @@ export function defineComponent<
|
||||||
: { [key in RuntimePropsKeys]?: any }
|
: { [key in RuntimePropsKeys]?: any }
|
||||||
: TypeProps,
|
: TypeProps,
|
||||||
TypeRefs extends Record<string, unknown> = {},
|
TypeRefs extends Record<string, unknown> = {},
|
||||||
|
TypeEl extends Element = any,
|
||||||
>(
|
>(
|
||||||
options: {
|
options: {
|
||||||
props?: (RuntimePropsOptions & ThisType<void>) | RuntimePropsKeys[]
|
props?: (RuntimePropsOptions & ThisType<void>) | RuntimePropsKeys[]
|
||||||
|
@ -229,6 +232,10 @@ export function defineComponent<
|
||||||
* @private for language-tools use only
|
* @private for language-tools use only
|
||||||
*/
|
*/
|
||||||
__typeRefs?: TypeRefs
|
__typeRefs?: TypeRefs
|
||||||
|
/**
|
||||||
|
* @private for language-tools use only
|
||||||
|
*/
|
||||||
|
__typeEl?: TypeEl
|
||||||
} & ComponentOptionsBase<
|
} & ComponentOptionsBase<
|
||||||
ToResolvedProps<InferredProps, ResolvedEmits>,
|
ToResolvedProps<InferredProps, ResolvedEmits>,
|
||||||
SetupBindings,
|
SetupBindings,
|
||||||
|
@ -289,7 +296,8 @@ export function defineComponent<
|
||||||
// MakeDefaultsOptional - if TypeProps is provided, set to false to use
|
// MakeDefaultsOptional - if TypeProps is provided, set to false to use
|
||||||
// user props types verbatim
|
// user props types verbatim
|
||||||
unknown extends TypeProps ? true : false,
|
unknown extends TypeProps ? true : false,
|
||||||
TypeRefs
|
TypeRefs,
|
||||||
|
TypeEl
|
||||||
>
|
>
|
||||||
|
|
||||||
// implementation, close to no-op
|
// implementation, close to no-op
|
||||||
|
|
|
@ -233,6 +233,7 @@ export type CreateComponentPublicInstanceWithMixins<
|
||||||
Directives extends Record<string, Directive> = {},
|
Directives extends Record<string, Directive> = {},
|
||||||
Exposed extends string = string,
|
Exposed extends string = string,
|
||||||
TypeRefs extends Data = {},
|
TypeRefs extends Data = {},
|
||||||
|
TypeEl extends Element = any,
|
||||||
Provide extends ComponentProvideOptions = ComponentProvideOptions,
|
Provide extends ComponentProvideOptions = ComponentProvideOptions,
|
||||||
// mixin inference
|
// mixin inference
|
||||||
PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>,
|
PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>,
|
||||||
|
@ -277,7 +278,8 @@ export type CreateComponentPublicInstanceWithMixins<
|
||||||
I,
|
I,
|
||||||
S,
|
S,
|
||||||
Exposed,
|
Exposed,
|
||||||
TypeRefs
|
TypeRefs,
|
||||||
|
TypeEl
|
||||||
>
|
>
|
||||||
|
|
||||||
export type ExposedKeys<
|
export type ExposedKeys<
|
||||||
|
@ -302,6 +304,7 @@ export type ComponentPublicInstance<
|
||||||
S extends SlotsType = {},
|
S extends SlotsType = {},
|
||||||
Exposed extends string = '',
|
Exposed extends string = '',
|
||||||
TypeRefs extends Data = {},
|
TypeRefs extends Data = {},
|
||||||
|
TypeEl extends Element = any,
|
||||||
> = {
|
> = {
|
||||||
$: ComponentInternalInstance
|
$: ComponentInternalInstance
|
||||||
$data: D
|
$data: D
|
||||||
|
@ -315,7 +318,7 @@ export type ComponentPublicInstance<
|
||||||
$parent: ComponentPublicInstance | null
|
$parent: ComponentPublicInstance | null
|
||||||
$host: Element | null
|
$host: Element | null
|
||||||
$emit: EmitFn<E>
|
$emit: EmitFn<E>
|
||||||
$el: any
|
$el: TypeEl
|
||||||
$options: Options & MergedComponentOptionsOverride
|
$options: Options & MergedComponentOptionsOverride
|
||||||
$forceUpdate: () => void
|
$forceUpdate: () => void
|
||||||
$nextTick: typeof nextTick
|
$nextTick: typeof nextTick
|
||||||
|
|
Loading…
Reference in New Issue