forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathkeyRemappingKeyofResult2.types
More file actions
72 lines (55 loc) · 2.24 KB
/
keyRemappingKeyofResult2.types
File metadata and controls
72 lines (55 loc) · 2.24 KB
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
67
68
69
70
71
72
//// [tests/cases/compiler/keyRemappingKeyofResult2.ts] ////
=== keyRemappingKeyofResult2.ts ===
// https://github.com/microsoft/TypeScript/issues/56239
type Values<T> = T[keyof T];
>Values : Values<T>
> : ^^^^^^^^^
type ProvidedActor = {
>ProvidedActor : ProvidedActor
> : ^^^^^^^^^^^^^
src: string;
>src : string
> : ^^^^^^
logic: unknown;
>logic : unknown
> : ^^^^^^^
};
interface StateMachineConfig<TActors extends ProvidedActor> {
invoke: {
>invoke : { src: TActors["src"]; }
> : ^^^^^^^ ^^^
src: TActors["src"];
>src : TActors["src"]
> : ^^^^^^^^^^^^^^
};
}
declare function setup<TActors extends Record<string, unknown>>(_: {
>setup : <TActors extends Record<string, unknown>>(_: { actors: { [K in keyof TActors]: TActors[K]; }; }) => { createMachine: (config: StateMachineConfig<Values<{ [K in keyof TActors as K & string]: { src: K; logic: TActors[K]; }; }>>) => void; }
> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^
>_ : { actors: { [K in keyof TActors]: TActors[K]; }; }
> : ^^^^^^^^^^ ^^^
actors: {
>actors : { [K in keyof TActors]: TActors[K]; }
> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[K in keyof TActors]: TActors[K];
};
}): {
createMachine: (
>createMachine : (config: StateMachineConfig<Values<{ [K in keyof TActors as K & string]: { src: K; logic: TActors[K]; }; }>>) => void
> : ^ ^^ ^^^^^
config: StateMachineConfig<
>config : StateMachineConfig<Values<{ [K in keyof TActors as K & string]: { src: K; logic: TActors[K]; }; }>>
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^
Values<{
[K in keyof TActors as K & string]: {
src: K;
>src : K
> : ^
logic: TActors[K];
>logic : TActors[K]
> : ^^^^^^^^^^
};
}>
>,
) => void;
};