forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjsxGenericComponentWithSpreadingResultOfGenericFunction.types
More file actions
61 lines (50 loc) · 2.49 KB
/
jsxGenericComponentWithSpreadingResultOfGenericFunction.types
File metadata and controls
61 lines (50 loc) · 2.49 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
//// [tests/cases/compiler/jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx] ////
=== Performance Stats ===
Assignability cache: 2,500
Type Count: 10,000
Instantiation count: 100,000
Symbol count: 50,000
=== jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx ===
/// <reference path="react16.d.ts" />
// repro #51577
declare function omit<T, K extends string>(names: readonly K[], obj: T): Omit<T, K>;
>omit : { <T, K extends string>(names: readonly K[], obj: T): Omit<T, K>; <K_1 extends string>(names: readonly K_1[]): <T_1>(obj: T_1) => Omit<T_1, K_1>; }
> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^
>names : readonly K[]
> : ^^^^^^^^^^^^
>obj : T
> : ^
declare function omit<K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>;
>omit : { <T, K_1 extends string>(names: readonly K_1[], obj: T): Omit<T, K_1>; <K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>; }
> : ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^
>names : readonly K[]
> : ^^^^^^^^^^^^
>obj : T
> : ^
declare const otherProps: { bar: string, qwe: boolean }
>otherProps : { bar: string; qwe: boolean; }
> : ^^^^^^^ ^^^^^^^ ^^^
>bar : string
> : ^^^^^^
>qwe : boolean
> : ^^^^^^^
declare function GenericComponent<T>(props: T): null
>GenericComponent : <T>(props: T) => null
> : ^ ^^ ^^ ^^^^^
>props : T
> : ^
<GenericComponent {...omit(['bar'], otherProps)} />; // no error
><GenericComponent {...omit(['bar'], otherProps)} /> : JSX.Element
> : ^^^^^^^^^^^
>GenericComponent : <T>(props: T) => null
> : ^ ^^ ^^ ^^^^^
>omit(['bar'], otherProps) : Omit<{ bar: string; qwe: boolean; }, "bar">
> : ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^
>omit : { <T, K extends string>(names: readonly K[], obj: T): Omit<T, K>; <K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>; }
> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^
>['bar'] : "bar"[]
> : ^^^^^^^
>'bar' : "bar"
> : ^^^^^
>otherProps : { bar: string; qwe: boolean; }
> : ^^^^^^^ ^^^^^^^ ^^^