forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinferObjectTypeFromStringLiteralToKeyof.types
More file actions
37 lines (31 loc) · 1.09 KB
/
inferObjectTypeFromStringLiteralToKeyof.types
File metadata and controls
37 lines (31 loc) · 1.09 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
//// [tests/cases/compiler/inferObjectTypeFromStringLiteralToKeyof.ts] ////
=== inferObjectTypeFromStringLiteralToKeyof.ts ===
declare function inference1<T>(name: keyof T): T;
>inference1 : <T>(name: keyof T) => T
>name : keyof T
declare function inference2<T>(target: T, name: keyof T): T;
>inference2 : <T>(target: T, name: keyof T) => T
>target : T
>name : keyof T
declare var two: "a" | "d";
>two : "a" | "d"
const x = inference1(two);
>x : { a: unknown; d: unknown; }
>inference1(two) : { a: unknown; d: unknown; }
>inference1 : <T>(name: keyof T) => T
>two : "a" | "d"
const y = inference2({ a: 1, b: 2, c: 3, d(n) { return n } }, two);
>y : { a: number; b: number; c: number; d(n: any): any; }
>inference2({ a: 1, b: 2, c: 3, d(n) { return n } }, two) : { a: number; b: number; c: number; d(n: any): any; }
>inference2 : <T>(target: T, name: keyof T) => T
>{ a: 1, b: 2, c: 3, d(n) { return n } } : { a: number; b: number; c: number; d(n: any): any; }
>a : number
>1 : 1
>b : number
>2 : 2
>c : number
>3 : 3
>d : (n: any) => any
>n : any
>n : any
>two : "a" | "d"