File: indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (39 lines) | stat: -rw-r--r-- 803 bytes parent folder | download | duplicates (3)
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
=== tests/cases/compiler/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.ts ===
type AnyFunction = (...args: any[]) => any;
>AnyFunction : (...args: any[]) => any
>args : any[]

type Params<T> = Parameters<Extract<T, AnyFunction>>;
>Params : Params<T>

interface Wrapper<T> {
	call<K extends keyof T>(event: K, ...args: Params<T[K]>): void;
>call : <K extends keyof T>(event: K, ...args: Params<T[K]>) => void
>event : K
>args : Parameters<Extract<T[K], AnyFunction>>
}

interface AWrapped {
	foo(): void;
>foo : () => void
}

class A {
>A : A

	foo: Wrapper<AWrapped>;
>foo : Wrapper<AWrapped>
}

interface BWrapped extends AWrapped {
	bar(): void;
>bar : () => void
}

class B extends A {
>B : B
>A : A

	foo: Wrapper<BWrapped>;
>foo : Wrapper<BWrapped>
}