- Notifications
You must be signed in to change notification settings - Fork 33.7k
/
Copy pathv3-setup-context.d.ts
41 lines (35 loc) · 1.24 KB
/
v3-setup-context.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import{VNode}from'./vnode'
import{Data,UnionToIntersection}from'./common'
import{Vue}from'./vue'
exporttypeSlot=(...args: any[])=>VNode[]
exporttypeSlots=Record<string,Slot|undefined>
exporttypeObjectEmitsOptions=Record<
string,
((...args: any[])=>any)|null
>
exporttypeEmitsOptions=ObjectEmitsOptions|string[]
exporttypeEmitFn<
Options=ObjectEmitsOptions,
EventextendskeyofOptions=keyofOptions,
ReturnTypeextendsvoid|Vue=void
>=OptionsextendsArray<infer V>
? (event: V, ...args: any[])=>ReturnType
: {}extendsOptions// if the emit is empty object (usually the default value for emit) should be converted to function
? (event: string, ...args: any[])=>ReturnType
: UnionToIntersection<
{
[keyinEvent]: Options[key]extends(...args: infer Args)=>any
? (event: key, ...args: Args)=>ReturnType
: (event: key, ...args: any[])=>ReturnType
}[Event]
>
exportinterfaceSetupContext<EextendsEmitsOptions={}>{
attrs: Data
/**
* Equivalent of `this.$listeners`, which is Vue 2 only.
*/
listeners: Record<string,Function|Function[]>
slots: Slots
emit: EmitFn<E>
expose(exposed?: Record<string,any>): void
}