|
| 1 | +longObjectInstantiationChain1.ts(57,4): error TS2339: Property 'p51' does not exist on type 'merge<{ p1: number; }, { p2: number; }>'. |
| 2 | +longObjectInstantiationChain1.ts(62,4): error TS2339: Property 'p4' does not exist on type 'merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>'. |
| 3 | +longObjectInstantiationChain1.ts(64,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 4 | +longObjectInstantiationChain1.ts(65,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 5 | +longObjectInstantiationChain1.ts(68,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 6 | +longObjectInstantiationChain1.ts(70,5): error TS2339: Property 'p38' does not exist on type 'merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. |
| 7 | +longObjectInstantiationChain1.ts(71,5): error TS2339: Property 'p51' does not exist on type 'merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. |
| 8 | +longObjectInstantiationChain1.ts(73,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 9 | +longObjectInstantiationChain1.ts(74,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 10 | +longObjectInstantiationChain1.ts(75,1): error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 11 | + |
| 12 | + |
| 13 | +==== longObjectInstantiationChain1.ts (10 errors) ==== |
| 14 | + export type merge<base, props> = Omit<base, keyof props & keyof base> & props; |
| 15 | + |
| 16 | + declare const merge: <l, r>(l: l, r: r) => merge<l, r>; |
| 17 | + |
| 18 | + const o1 = merge({ p1: 1 }, { p2: 2 }); |
| 19 | + const o2 = merge(o1, { p3: 3 }); |
| 20 | + const o3 = merge(o2, { p4: 4 }); |
| 21 | + const o4 = merge(o3, { p5: 5 }); |
| 22 | + const o5 = merge(o4, { p6: 6 }); |
| 23 | + const o6 = merge(o5, { p7: 7 }); |
| 24 | + const o7 = merge(o6, { p8: 8 }); |
| 25 | + const o8 = merge(o7, { p9: 9 }); |
| 26 | + const o9 = merge(o8, { p10: 10 }); |
| 27 | + const o10 = merge(o9, { p11: 11 }); |
| 28 | + const o11 = merge(o10, { p12: 12 }); |
| 29 | + const o12 = merge(o11, { p13: 13 }); |
| 30 | + const o13 = merge(o12, { p14: 14 }); |
| 31 | + const o14 = merge(o13, { p15: 15 }); |
| 32 | + const o15 = merge(o14, { p16: 16 }); |
| 33 | + const o16 = merge(o15, { p17: 17 }); |
| 34 | + const o17 = merge(o16, { p18: 18 }); |
| 35 | + const o18 = merge(o17, { p19: 19 }); |
| 36 | + const o19 = merge(o18, { p20: 20 }); |
| 37 | + const o20 = merge(o19, { p21: 21 }); |
| 38 | + const o21 = merge(o20, { p22: 22 }); |
| 39 | + const o22 = merge(o21, { p23: 23 }); |
| 40 | + const o23 = merge(o22, { p24: 24 }); |
| 41 | + const o24 = merge(o23, { p25: 25 }); |
| 42 | + const o25 = merge(o24, { p26: 26 }); |
| 43 | + const o26 = merge(o25, { p27: 27 }); |
| 44 | + const o27 = merge(o26, { p28: 28 }); |
| 45 | + const o28 = merge(o27, { p29: 29 }); |
| 46 | + const o29 = merge(o28, { p30: 30 }); |
| 47 | + const o30 = merge(o29, { p31: 31 }); |
| 48 | + const o31 = merge(o30, { p32: 32 }); |
| 49 | + const o32 = merge(o31, { p33: 33 }); |
| 50 | + const o33 = merge(o32, { p34: 34 }); |
| 51 | + const o34 = merge(o33, { p35: 35 }); |
| 52 | + const o35 = merge(o34, { p36: 36 }); |
| 53 | + const o36 = merge(o35, { p37: 37 }); |
| 54 | + const o37 = merge(o36, { p38: 38 }); |
| 55 | + const o38 = merge(o37, { p39: 39 }); |
| 56 | + const o39 = merge(o38, { p40: 40 }); |
| 57 | + const o40 = merge(o39, { p41: 41 }); |
| 58 | + const o41 = merge(o40, { p42: 42 }); |
| 59 | + const o42 = merge(o41, { p43: 43 }); |
| 60 | + const o43 = merge(o42, { p44: 44 }); |
| 61 | + const o44 = merge(o43, { p45: 45 }); |
| 62 | + const o45 = merge(o44, { p46: 46 }); |
| 63 | + const o46 = merge(o45, { p47: 47 }); |
| 64 | + const o47 = merge(o46, { p48: 48 }); |
| 65 | + const o48 = merge(o47, { p49: 49 }); |
| 66 | + const o49 = merge(o48, { p50: 50 }); |
| 67 | + const o50 = merge(o49, { p51: 51 }); |
| 68 | + |
| 69 | + o1.p1; |
| 70 | + o1.p51; // error |
| 71 | + ~~~ |
| 72 | +!!! error TS2339: Property 'p51' does not exist on type 'merge<{ p1: number; }, { p2: number; }>'. |
| 73 | + |
| 74 | + o2.p1; |
| 75 | + o2.p2; |
| 76 | + o2.p3; |
| 77 | + o2.p4; // error |
| 78 | + ~~ |
| 79 | +!!! error TS2339: Property 'p4' does not exist on type 'merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>'. |
| 80 | + |
| 81 | + o25.p1; |
| 82 | + ~~~~~~ |
| 83 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 84 | + o25.p10; |
| 85 | + ~~~~~~~ |
| 86 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 87 | + o25.p26; |
| 88 | + |
| 89 | + o30.p1; |
| 90 | + ~~~~~~ |
| 91 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 92 | + o30.p31; |
| 93 | + o30.p38; // error |
| 94 | + ~~~ |
| 95 | +!!! error TS2339: Property 'p38' does not exist on type 'merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. |
| 96 | + o30.p51; // error |
| 97 | + ~~~ |
| 98 | +!!! error TS2339: Property 'p51' does not exist on type 'merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<merge<{ p1: number; }, { p2: number; }>, { p3: number; }>, { p4: number; }>, { p5: number; }>, { p6: number; }>, { p7: number; }>, { p8: number; }>, { p9: number; }>, { p10: number; }>, { p11: number; }>, { p12: number; }>, { p13: number; }>, { p14: number; }>, { p15: number; }>, { p16: number; }>, { p17: number; }>, { p18: number; }>, { p19: number; }>, { p20: number; }>, { p21: number; }>, { p22: number; }>, { p23: number; }>, { p24: number; }>, { p25: number; }>, { p26: number; }>, { p27: number; }>, { p28: number; }>, { p29: number; }>, { p30: number; }>, { p31: number; }>'. |
| 99 | + |
| 100 | + o50.p1; |
| 101 | + ~~~~~~ |
| 102 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 103 | + o50.p31; |
| 104 | + ~~~~~~~ |
| 105 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 106 | + o50.p38; |
| 107 | + ~~~~~~~ |
| 108 | +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. |
| 109 | + o50.p51; |
| 110 | + |
0 commit comments