expectType<number>(refs.child.$refs.foo)
})
+describe('__typeEl backdoor', () => {
+ const Comp = defineComponent({
+ __typeEl: {} as HTMLAnchorElement,
+ })
+ const c = new Comp()
+
+ expectType<HTMLAnchorElement>(c.$el)
+})
+
defineComponent({
props: {
foo: [String, null],
Provide extends ComponentProvideOptions = ComponentProvideOptions,
MakeDefaultsOptional extends boolean = true,
TypeRefs extends Record<string, unknown> = {},
+ TypeEl extends Element = any,
> = ComponentPublicInstanceConstructor<
CreateComponentPublicInstanceWithMixins<
Props,
LC & GlobalComponents,
Directives & GlobalDirectives,
Exposed,
- TypeRefs
+ TypeRefs,
+ TypeEl
>
> &
ComponentOptionsBase<
: { [key in RuntimePropsKeys]?: any }
: TypeProps,
TypeRefs extends Record<string, unknown> = {},
+ TypeEl extends Element = any,
>(
options: {
props?: (RuntimePropsOptions & ThisType<void>) | RuntimePropsKeys[]
* @private for language-tools use only
*/
__typeRefs?: TypeRefs
+ /**
+ * @private for language-tools use only
+ */
+ __typeEl?: TypeEl
} & ComponentOptionsBase<
ToResolvedProps<InferredProps, ResolvedEmits>,
SetupBindings,
// MakeDefaultsOptional - if TypeProps is provided, set to false to use
// user props types verbatim
unknown extends TypeProps ? true : false,
- TypeRefs
+ TypeRefs,
+ TypeEl
>
// implementation, close to no-op
Directives extends Record<string, Directive> = {},
Exposed extends string = string,
TypeRefs extends Data = {},
+ TypeEl extends Element = any,
Provide extends ComponentProvideOptions = ComponentProvideOptions,
// mixin inference
PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>,
I,
S,
Exposed,
- TypeRefs
+ TypeRefs,
+ TypeEl
>
export type ExposedKeys<
S extends SlotsType = {},
Exposed extends string = '',
TypeRefs extends Data = {},
+ TypeEl extends Element = any,
> = {
$: ComponentInternalInstance
$data: D
$parent: ComponentPublicInstance | null
$host: Element | null
$emit: EmitFn<E>
- $el: any
+ $el: TypeEl
$options: Options & MergedComponentOptionsOverride
$forceUpdate: () => void
$nextTick: typeof nextTick