Skip to content

Commit 2ed627a

Browse files
committed
Update tests
1 parent 3c36339 commit 2ed627a

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

tests/cases/compiler/spreadInvalidArgumentType.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ function f<T extends { b: string }>(p1: T, p2: T[]) {
2727

2828
var e: E;
2929

30-
var o1 = { ...p1 }; // Error, generic type paramterre
31-
var o2 = { ...p2 }; // OK
32-
var o3 = { ...t }; // Error, generic type paramter
33-
var o4 = { ...i }; // Error, index access
30+
var o1 = { ...p1 }; // OK, generic type paramterre
31+
var o2 = { ...p2 }; // OK
32+
var o3 = { ...t }; // OK, generic type paramter
33+
var o4 = { ...i }; // OK, index access
3434
var o5 = { ...k }; // Error, index
35-
var o6 = { ...mapped_generic }; // Error, generic mapped object type
35+
var o6 = { ...mapped_generic }; // OK, generic mapped object type
3636
var o7 = { ...mapped }; // OK, non-generic mapped type
3737

38-
var o8 = { ...union_generic }; // Error, union with generic type parameter
38+
var o8 = { ...union_generic }; // OK, union with generic type parameter
3939
var o9 = { ...union_primitive }; // Error, union with generic type parameter
4040

41-
var o10 = { ...intersection_generic }; // Error, intersection with generic type parameter
41+
var o10 = { ...intersection_generic }; // OK, intersection with generic type parameter
4242
var o11 = { ...intersection_primitive }; // Error, intersection with generic type parameter
4343

4444
var o12 = { ...num }; // Error

tests/cases/conformance/types/spread/objectSpread.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,20 @@ let shortCutted: { a: number, b: string } = { ...o, a }
122122
let spreadNonPrimitive = { ...<object>{}};
123123

124124
// generic spreads
125+
126+
function f<T, U>(t: T, u: U) {
127+
return { ...t, ...u, id: 'id' };
128+
}
129+
130+
let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
131+
f({ a: 1, b: 'yes' }, { c: 'no', d: false })
132+
let overlap: { id: string, a: number, b: string } =
133+
f({ a: 1 }, { a: 2, b: 'extra' })
134+
let overlapConflict: { id:string, a: string } =
135+
f({ a: 1 }, { a: 'mismatch' })
136+
let overwriteId: { id: string, a: number, c: number, d: string } =
137+
f({ a: 1, id: true }, { c: 1, d: 'no' })
138+
125139
function genericSpread<T, U>(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) {
126140
let x01 = { ...t };
127141
let x02 = { ...t, ...t };

tests/cases/conformance/types/spread/objectSpreadNegative.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,3 @@ spreadC.m(); // error 'm' is not in '{ ... c }'
5757
let obj: object = { a: 123 };
5858
let spreadObj = { ...obj };
5959
spreadObj.a; // error 'a' is not in {}
60-
61-
// generics
62-
function f<T, U>(t: T, u: U) {
63-
return { ...t, ...u, id: 'id' };
64-
}
65-
function override<U>(initial: U, override: U): U {
66-
return { ...initial, ...override };
67-
}
68-
let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
69-
f({ a: 1, b: 'yes' }, { c: 'no', d: false })
70-
let overlap: { id: string, a: number, b: string } =
71-
f({ a: 1 }, { a: 2, b: 'extra' })
72-
let overlapConflict: { id:string, a: string } =
73-
f({ a: 1 }, { a: 'mismatch' })
74-
let overwriteId: { id: string, a: number, c: number, d: string } =
75-
f({ a: 1, id: true }, { c: 1, d: 'no' })

0 commit comments

Comments
 (0)