File: reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types

package info (click to toggle)
node-typescript 5.1.6%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 492,516 kB
  • sloc: javascript: 2,078,951; makefile: 6; sh: 1
file content (66 lines) | stat: -rw-r--r-- 2,624 bytes parent folder | download
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
=== tests/cases/compiler/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.ts ===
type Tuple<T> = readonly [T, ...T[]];
>Tuple : Tuple<T>

declare function bindAll<
>bindAll : <TTarget extends EventTarget, TTypes extends Tuple<keyof TTarget & `on${any}`>>(target: TTarget, bindings: { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]) => void; }; }) => void

  TTarget extends EventTarget,
  TTypes extends Tuple<keyof TTarget & `on${any}`>
>(
  target: TTarget,
>target : TTarget

  bindings: {
>bindings : { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]) => void; }; }

    [K in keyof TTypes]: {
      type: TTypes[K];
>type : TTypes[K]

      listener: (
>listener : (ev: Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]) => void

        ev: Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]
>ev : Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]
>args : any[]

      ) => void;
    };
  }
): void;

bindAll({} as HTMLButtonElement, [
>bindAll({} as HTMLButtonElement, [  {    type: "onclick",    listener: (event) => {},  },  {    type: "onkeydown",    listener: (event) => {},  },]) : void
>bindAll : <TTarget extends EventTarget, TTypes extends Tuple<keyof TTarget & `on${any}`>>(target: TTarget, bindings: { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters<Extract<TTarget[TTypes[K]], (...args: any[]) => any>>[0]) => void; }; }) => void
>{} as HTMLButtonElement : HTMLButtonElement
>{} : {}
>[  {    type: "onclick",    listener: (event) => {},  },  {    type: "onkeydown",    listener: (event) => {},  },] : [{ type: "onclick"; listener: (event: MouseEvent) => void; }, { type: "onkeydown"; listener: (event: KeyboardEvent) => void; }]
  {
>{    type: "onclick",    listener: (event) => {},  } : { type: "onclick"; listener: (event: MouseEvent) => void; }

    type: "onclick",
>type : "onclick"
>"onclick" : "onclick"

    listener: (event) => {},
>listener : (event: MouseEvent) => void
>(event) => {} : (event: MouseEvent) => void
>event : MouseEvent

  },
  {
>{    type: "onkeydown",    listener: (event) => {},  } : { type: "onkeydown"; listener: (event: KeyboardEvent) => void; }

    type: "onkeydown",
>type : "onkeydown"
>"onkeydown" : "onkeydown"

    listener: (event) => {},
>listener : (event: KeyboardEvent) => void
>(event) => {} : (event: KeyboardEvent) => void
>event : KeyboardEvent

  },
]);