diff --git a/packages-private/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx index fda3ca4856c..ddd0d98d400 100644 --- a/packages-private/dts-test/defineComponent.test-d.tsx +++ b/packages-private/dts-test/defineComponent.test-d.tsx @@ -1804,6 +1804,35 @@ describe('__typeEmits backdoor, call signature syntax', () => { c.$emit('update', 123) }) +describe('__typeRefs backdoor, for this type', () => { + type Refs = { + foo: number + } + defineComponent({ + __typeRefs: {} as { child: ComponentInstance }, + mounted() { + expectType>(this.$refs.child) + }, + }) + const Child = defineComponent({ + __typeRefs: {} as Refs, + methods: { + test() { + expectType(this.$refs.foo) + }, + }, + }) +}) + +describe('__typeEl backdoor, for this type', () => { + defineComponent({ + __typeEl: {} as HTMLAnchorElement, + mounted() { + expectType(this.$el) + }, + }) +}) + describe('__typeRefs backdoor, object syntax', () => { type Refs = { foo: number diff --git a/packages/runtime-core/src/apiDefineComponent.ts b/packages/runtime-core/src/apiDefineComponent.ts index 2ce870f0141..7bcda6591ae 100644 --- a/packages/runtime-core/src/apiDefineComponent.ts +++ b/packages/runtime-core/src/apiDefineComponent.ts @@ -272,7 +272,9 @@ export function defineComponent< Slots, LocalComponents, Directives, - Exposed + Exposed, + TypeRefs, + TypeEl > >, ): DefineComponent<