SERVER_PREFETCH = 'sp'
}
-export interface SetupContext<E = EmitsOptions> {
- attrs: Data
- slots: Slots
- emit: EmitFn<E>
- expose: (exposed?: Record<string, any>) => void
-}
+// use `E extends any` to force evaluating type to fix #2362
+export type SetupContext<E = EmitsOptions> = E extends any
+ ? {
+ attrs: Data
+ slots: Slots
+ emit: EmitFn<E>
+ expose: (exposed?: Record<string, any>) => void
+ }
+ : never
/**
* @internal
FunctionalComponent,
ComponentPublicInstance,
toRefs,
- IsAny
+ IsAny,
+ SetupContext,
+ expectAssignable
} from './index'
declare function extractComponentOptions<Props, RawBindings>(
expectType<number>(props.foo)
})
+
+describe('SetupContext', () => {
+ describe('can assign', () => {
+ const wider: SetupContext<{ a: () => true; b: () => true }> = {} as any
+
+ expectAssignable<SetupContext<{ b: () => true }>>(wider)
+ })
+})