feat(runtime-core): type and attr fallthrough support for emits option

This commit is contained in:
Evan You
2020-04-03 12:05:52 -04:00
parent c409d4f297
commit bf473a64ea
9 changed files with 350 additions and 96 deletions

View File

@@ -7,7 +7,8 @@ import {
ComponentOptionsBase,
ComputedOptions,
MethodOptions,
resolveMergedOptions
resolveMergedOptions,
EmitsOptions
} from './apiOptions'
import { ReactiveEffect, UnwrapRef } from '@vue/reactivity'
import { warn } from './warning'
@@ -26,6 +27,7 @@ export type ComponentPublicInstance<
D = {}, // return from data()
C extends ComputedOptions = {},
M extends MethodOptions = {},
E extends EmitsOptions = {},
PublicProps = P
> = {
$: ComponentInternalInstance
@@ -36,9 +38,9 @@ export type ComponentPublicInstance<
$slots: Slots
$root: ComponentInternalInstance | null
$parent: ComponentInternalInstance | null
$emit: Emit
$emit: Emit<E>
$el: any
$options: ComponentOptionsBase<P, B, D, C, M>
$options: ComponentOptionsBase<P, B, D, C, M, E>
$forceUpdate: ReactiveEffect
$nextTick: typeof nextTick
$watch: typeof instanceWatch