mirror of https://github.com/vuejs/core.git
parent
588bd44f03
commit
eb2a83283c
|
|
@ -180,12 +180,15 @@ export const enum LifecycleHooks {
|
||||||
SERVER_PREFETCH = 'sp'
|
SERVER_PREFETCH = 'sp'
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SetupContext<E = EmitsOptions> {
|
// use `E extends any` to force evaluating type to fix #2362
|
||||||
attrs: Data
|
export type SetupContext<E = EmitsOptions> = E extends any
|
||||||
slots: Slots
|
? {
|
||||||
emit: EmitFn<E>
|
attrs: Data
|
||||||
expose: (exposed?: Record<string, any>) => void
|
slots: Slots
|
||||||
}
|
emit: EmitFn<E>
|
||||||
|
expose: (exposed?: Record<string, any>) => void
|
||||||
|
}
|
||||||
|
: never
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ import {
|
||||||
FunctionalComponent,
|
FunctionalComponent,
|
||||||
ComponentPublicInstance,
|
ComponentPublicInstance,
|
||||||
toRefs,
|
toRefs,
|
||||||
IsAny
|
IsAny,
|
||||||
|
SetupContext,
|
||||||
|
expectAssignable
|
||||||
} from './index'
|
} from './index'
|
||||||
|
|
||||||
declare function extractComponentOptions<Props, RawBindings>(
|
declare function extractComponentOptions<Props, RawBindings>(
|
||||||
|
|
@ -476,3 +478,11 @@ describe('class', () => {
|
||||||
|
|
||||||
expectType<number>(props.foo)
|
expectType<number>(props.foo)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('SetupContext', () => {
|
||||||
|
describe('can assign', () => {
|
||||||
|
const wider: SetupContext<{ a: () => true; b: () => true }> = {} as any
|
||||||
|
|
||||||
|
expectAssignable<SetupContext<{ b: () => true }>>(wider)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue