mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Update baselines with spread string's numeric indexers
This commit is contained in:
1 parent
5a037ad368
commit
1728ae1cbc
6 files changed
+151
-144
No files matched your search
@@ -35,14 +35,16 @@ let getter: { a: number, c: number } =
|
||||
{ ...op, c: 7 }
|
||||
getter.a = 12;
|
||||
|
||||
// null, undefined, functions and primitives result in { }
|
||||
// null, undefined, functions and primitives besides string result in { }
|
||||
let spreadNull = { ...null };
|
||||
let spreadUndefind = { ...undefined };
|
||||
let spreadNum = { ...12 };
|
||||
let spreadStr = { ...'foo' };
|
||||
let spreadBool = { ...false };
|
||||
let spreadFunc = { ...(function () { }) };
|
||||
|
||||
// strings get a numeric indexer: [n: number]: string
|
||||
let spreadStr = { ...'foo' };
|
||||
|
||||
// methods are not enumerable
|
||||
class C { p = 1; m() { } }
|
||||
let c: C = new C()
|
||||
@@ -128,13 +130,14 @@ var propertyNested = __assign({ a: __assign({}, o) });
|
||||
var op = { get a() { return 6; } };
|
||||
var getter = __assign({}, op, { c: 7 });
|
||||
getter.a = 12;
|
||||
// null, undefined, functions and primitives result in { }
|
||||
// null, undefined, functions and primitives besides string result in { }
|
||||
var spreadNull = __assign({}, null);
|
||||
var spreadUndefind = __assign({}, undefined);
|
||||
var spreadNum = __assign({}, 12);
|
||||
var spreadStr = __assign({}, 'foo');
|
||||
var spreadBool = __assign({}, false);
|
||||
var spreadFunc = __assign({}, (function () { }));
|
||||
// strings get a numeric indexer: [n: number]: string
|
||||
var spreadStr = __assign({}, 'foo');
|
||||
// methods are not enumerable
|
||||
var C = (function () {
|
||||
function C() {
|
||||
|
||||
@@ -150,7 +150,7 @@ getter.a = 12;
|
||||
>getter : Symbol(getter, Decl(objectSpread.ts, 32, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 32, 13))
|
||||
|
||||
// null, undefined, functions and primitives result in { }
|
||||
// null, undefined, functions and primitives besides string result in { }
|
||||
let spreadNull = { ...null };
|
||||
>spreadNull : Symbol(spreadNull, Decl(objectSpread.ts, 37, 3))
|
||||
|
||||
@@ -160,214 +160,215 @@ let spreadUndefind = { ...undefined };
|
||||
let spreadNum = { ...12 };
|
||||
>spreadNum : Symbol(spreadNum, Decl(objectSpread.ts, 39, 3))
|
||||
|
||||
let spreadStr = { ...'foo' };
|
||||
>spreadStr : Symbol(spreadStr, Decl(objectSpread.ts, 40, 3))
|
||||
|
||||
let spreadBool = { ...false };
|
||||
>spreadBool : Symbol(spreadBool, Decl(objectSpread.ts, 41, 3))
|
||||
>spreadBool : Symbol(spreadBool, Decl(objectSpread.ts, 40, 3))
|
||||
|
||||
let spreadFunc = { ...(function () { }) };
|
||||
>spreadFunc : Symbol(spreadFunc, Decl(objectSpread.ts, 42, 3))
|
||||
>spreadFunc : Symbol(spreadFunc, Decl(objectSpread.ts, 41, 3))
|
||||
|
||||
// strings get a numeric indexer: [n: number]: string
|
||||
let spreadStr = { ...'foo' };
|
||||
>spreadStr : Symbol(spreadStr, Decl(objectSpread.ts, 44, 3))
|
||||
|
||||
// methods are not enumerable
|
||||
class C { p = 1; m() { } }
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 42, 42))
|
||||
>p : Symbol(C.p, Decl(objectSpread.ts, 45, 9))
|
||||
>m : Symbol(C.m, Decl(objectSpread.ts, 45, 16))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 44, 29))
|
||||
>p : Symbol(C.p, Decl(objectSpread.ts, 47, 9))
|
||||
>m : Symbol(C.m, Decl(objectSpread.ts, 47, 16))
|
||||
|
||||
let c: C = new C()
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 46, 3))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 42, 42))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 42, 42))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 48, 3))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 44, 29))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 44, 29))
|
||||
|
||||
let spreadC: { p: number } = { ...c }
|
||||
>spreadC : Symbol(spreadC, Decl(objectSpread.ts, 47, 3))
|
||||
>p : Symbol(p, Decl(objectSpread.ts, 47, 14))
|
||||
>spreadC : Symbol(spreadC, Decl(objectSpread.ts, 49, 3))
|
||||
>p : Symbol(p, Decl(objectSpread.ts, 49, 14))
|
||||
|
||||
// own methods are enumerable
|
||||
let cplus: { p: number, plus(): void } = { ...c, plus() { return this.p + 1; } };
|
||||
>cplus : Symbol(cplus, Decl(objectSpread.ts, 50, 3))
|
||||
>p : Symbol(p, Decl(objectSpread.ts, 50, 12))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 50, 23))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 50, 48))
|
||||
>cplus : Symbol(cplus, Decl(objectSpread.ts, 52, 3))
|
||||
>p : Symbol(p, Decl(objectSpread.ts, 52, 12))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 52, 23))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 52, 48))
|
||||
|
||||
cplus.plus();
|
||||
>cplus.plus : Symbol(plus, Decl(objectSpread.ts, 50, 23))
|
||||
>cplus : Symbol(cplus, Decl(objectSpread.ts, 50, 3))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 50, 23))
|
||||
>cplus.plus : Symbol(plus, Decl(objectSpread.ts, 52, 23))
|
||||
>cplus : Symbol(cplus, Decl(objectSpread.ts, 52, 3))
|
||||
>plus : Symbol(plus, Decl(objectSpread.ts, 52, 23))
|
||||
|
||||
// new field's type conflicting with existing field is OK
|
||||
let changeTypeAfter: { a: string, b: string } =
|
||||
>changeTypeAfter : Symbol(changeTypeAfter, Decl(objectSpread.ts, 54, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 54, 22))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 54, 33))
|
||||
>changeTypeAfter : Symbol(changeTypeAfter, Decl(objectSpread.ts, 56, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 56, 22))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 56, 33))
|
||||
|
||||
{ ...o, a: 'wrong type?' }
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 55, 11))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 57, 11))
|
||||
|
||||
let changeTypeBefore: { a: number, b: string } =
|
||||
>changeTypeBefore : Symbol(changeTypeBefore, Decl(objectSpread.ts, 56, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 56, 23))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 56, 34))
|
||||
>changeTypeBefore : Symbol(changeTypeBefore, Decl(objectSpread.ts, 58, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 58, 23))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 58, 34))
|
||||
|
||||
{ a: 'wrong type?', ...o };
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 57, 5))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 59, 5))
|
||||
|
||||
let changeTypeBoth: { a: string, b: number } =
|
||||
>changeTypeBoth : Symbol(changeTypeBoth, Decl(objectSpread.ts, 58, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 58, 21))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 58, 32))
|
||||
>changeTypeBoth : Symbol(changeTypeBoth, Decl(objectSpread.ts, 60, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 60, 21))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 60, 32))
|
||||
|
||||
{ ...o, ...swap };
|
||||
|
||||
// optional
|
||||
let definiteBoolean: { sn: boolean };
|
||||
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpread.ts, 62, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 62, 22))
|
||||
>definiteBoolean : Symbol(definiteBoolean, Decl(objectSpread.ts, 64, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 64, 22))
|
||||
|
||||
let definiteString: { sn: string };
|
||||
>definiteString : Symbol(definiteString, Decl(objectSpread.ts, 63, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 63, 21))
|
||||
|
||||
let optionalString: { sn?: string };
|
||||
>optionalString : Symbol(optionalString, Decl(objectSpread.ts, 64, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 64, 21))
|
||||
|
||||
let optionalNumber: { sn?: number };
|
||||
>optionalNumber : Symbol(optionalNumber, Decl(objectSpread.ts, 65, 3))
|
||||
>definiteString : Symbol(definiteString, Decl(objectSpread.ts, 65, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 65, 21))
|
||||
|
||||
let optionalString: { sn?: string };
|
||||
>optionalString : Symbol(optionalString, Decl(objectSpread.ts, 66, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 66, 21))
|
||||
|
||||
let optionalNumber: { sn?: number };
|
||||
>optionalNumber : Symbol(optionalNumber, Decl(objectSpread.ts, 67, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 67, 21))
|
||||
|
||||
let optionalUnionStops: { sn: string | number | boolean } = { ...definiteBoolean, ...definiteString, ...optionalNumber };
|
||||
>optionalUnionStops : Symbol(optionalUnionStops, Decl(objectSpread.ts, 66, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 66, 25))
|
||||
>optionalUnionStops : Symbol(optionalUnionStops, Decl(objectSpread.ts, 68, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 68, 25))
|
||||
|
||||
let optionalUnionDuplicates: { sn: string | number } = { ...definiteBoolean, ...definiteString, ...optionalString, ...optionalNumber };
|
||||
>optionalUnionDuplicates : Symbol(optionalUnionDuplicates, Decl(objectSpread.ts, 67, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 67, 30))
|
||||
>optionalUnionDuplicates : Symbol(optionalUnionDuplicates, Decl(objectSpread.ts, 69, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 69, 30))
|
||||
|
||||
let allOptional: { sn?: string | number } = { ...optionalString, ...optionalNumber };
|
||||
>allOptional : Symbol(allOptional, Decl(objectSpread.ts, 68, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 68, 18))
|
||||
>allOptional : Symbol(allOptional, Decl(objectSpread.ts, 70, 3))
|
||||
>sn : Symbol(sn, Decl(objectSpread.ts, 70, 18))
|
||||
|
||||
// computed property
|
||||
let computedFirst: { a: number, b: string, "before everything": number } =
|
||||
>computedFirst : Symbol(computedFirst, Decl(objectSpread.ts, 71, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 71, 20))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 71, 31))
|
||||
>computedFirst : Symbol(computedFirst, Decl(objectSpread.ts, 73, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 73, 20))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 73, 31))
|
||||
|
||||
{ ['before everything']: 12, ...o, b: 'yes' }
|
||||
>'before everything' : Symbol(['before everything'], Decl(objectSpread.ts, 72, 5))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 72, 38))
|
||||
>'before everything' : Symbol(['before everything'], Decl(objectSpread.ts, 74, 5))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 74, 38))
|
||||
|
||||
let computedMiddle: { a: number, b: string, c: boolean, "in the middle": number } =
|
||||
>computedMiddle : Symbol(computedMiddle, Decl(objectSpread.ts, 73, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 73, 21))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 73, 32))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 73, 43))
|
||||
>computedMiddle : Symbol(computedMiddle, Decl(objectSpread.ts, 75, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 75, 21))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 75, 32))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 75, 43))
|
||||
|
||||
{ ...o, ['in the middle']: 13, b: 'maybe?', ...o2 }
|
||||
>'in the middle' : Symbol(['in the middle'], Decl(objectSpread.ts, 74, 11))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 74, 34))
|
||||
>'in the middle' : Symbol(['in the middle'], Decl(objectSpread.ts, 76, 11))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 76, 34))
|
||||
|
||||
let computedAfter: { a: number, b: string, "at the end": number } =
|
||||
>computedAfter : Symbol(computedAfter, Decl(objectSpread.ts, 75, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 75, 20))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 75, 31))
|
||||
>computedAfter : Symbol(computedAfter, Decl(objectSpread.ts, 77, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 77, 20))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 77, 31))
|
||||
|
||||
{ ...o, b: 'yeah', ['at the end']: 14 }
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 76, 11))
|
||||
>'at the end' : Symbol(['at the end'], Decl(objectSpread.ts, 76, 22))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 78, 11))
|
||||
>'at the end' : Symbol(['at the end'], Decl(objectSpread.ts, 78, 22))
|
||||
|
||||
// shortcut syntax
|
||||
let a = 12;
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 78, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 80, 3))
|
||||
|
||||
let shortCutted: { a: number, b: string } = { ...o, a }
|
||||
>shortCutted : Symbol(shortCutted, Decl(objectSpread.ts, 79, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 79, 18))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 79, 29))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 79, 51))
|
||||
>shortCutted : Symbol(shortCutted, Decl(objectSpread.ts, 81, 3))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 81, 18))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 81, 29))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 81, 51))
|
||||
|
||||
// generics
|
||||
function f<T, U>(t: T, u: U): { id: string, ...T, ...U } {
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 82, 11))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 82, 13))
|
||||
>t : Symbol(t, Decl(objectSpread.ts, 82, 17))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 82, 11))
|
||||
>u : Symbol(u, Decl(objectSpread.ts, 82, 22))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 82, 13))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 82, 31))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 82, 11))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 82, 13))
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 84, 11))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 84, 13))
|
||||
>t : Symbol(t, Decl(objectSpread.ts, 84, 17))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 84, 11))
|
||||
>u : Symbol(u, Decl(objectSpread.ts, 84, 22))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 84, 13))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 84, 31))
|
||||
>T : Symbol(T, Decl(objectSpread.ts, 84, 11))
|
||||
>U : Symbol(U, Decl(objectSpread.ts, 84, 13))
|
||||
|
||||
return { id: 'id', ...t, ...u };
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 83, 12))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 85, 12))
|
||||
}
|
||||
let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
|
||||
>exclusive : Symbol(exclusive, Decl(objectSpread.ts, 85, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 85, 16))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 85, 28))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 85, 39))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 85, 50))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 85, 61))
|
||||
>exclusive : Symbol(exclusive, Decl(objectSpread.ts, 87, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 87, 16))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 87, 28))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 87, 39))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 87, 50))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 87, 61))
|
||||
|
||||
f({ a: 1, b: 'yes' }, { c: 'no', d: false })
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 86, 7))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 86, 13))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 86, 27))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 86, 36))
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 88, 7))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 88, 13))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 88, 27))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 88, 36))
|
||||
|
||||
let overlap: { id: string, a: number, b: string } =
|
||||
>overlap : Symbol(overlap, Decl(objectSpread.ts, 87, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 87, 14))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 87, 26))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 87, 37))
|
||||
>overlap : Symbol(overlap, Decl(objectSpread.ts, 89, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 89, 14))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 89, 26))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 89, 37))
|
||||
|
||||
f({ a: 1 }, { a: 2, b: 'extra' })
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 88, 7))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 88, 17))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 88, 23))
|
||||
|
||||
let overlapConflict: { id:string, a: string } =
|
||||
>overlapConflict : Symbol(overlapConflict, Decl(objectSpread.ts, 89, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 89, 22))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 89, 33))
|
||||
|
||||
f({ a: 1 }, { a: 'mismatch' })
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 90, 7))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 90, 17))
|
||||
>b : Symbol(b, Decl(objectSpread.ts, 90, 23))
|
||||
|
||||
let overlapConflict: { id:string, a: string } =
|
||||
>overlapConflict : Symbol(overlapConflict, Decl(objectSpread.ts, 91, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 91, 22))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 91, 33))
|
||||
|
||||
f({ a: 1 }, { a: 'mismatch' })
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 92, 7))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 92, 17))
|
||||
|
||||
let overwriteId: { id: boolean, a: number, c: number, d: string } =
|
||||
>overwriteId : Symbol(overwriteId, Decl(objectSpread.ts, 91, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 91, 18))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 91, 31))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 91, 42))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 91, 53))
|
||||
>overwriteId : Symbol(overwriteId, Decl(objectSpread.ts, 93, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 93, 18))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 93, 31))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 93, 42))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 93, 53))
|
||||
|
||||
f({ a: 1, id: true }, { c: 1, d: 'no' })
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 92, 7))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 92, 13))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 92, 27))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 92, 33))
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>a : Symbol(a, Decl(objectSpread.ts, 94, 7))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 94, 13))
|
||||
>c : Symbol(c, Decl(objectSpread.ts, 94, 27))
|
||||
>d : Symbol(d, Decl(objectSpread.ts, 94, 33))
|
||||
|
||||
class D { m() { }; q = 2; }
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 92, 44))
|
||||
>m : Symbol(D.m, Decl(objectSpread.ts, 94, 9))
|
||||
>q : Symbol(D.q, Decl(objectSpread.ts, 94, 18))
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 94, 44))
|
||||
>m : Symbol(D.m, Decl(objectSpread.ts, 96, 9))
|
||||
>q : Symbol(D.q, Decl(objectSpread.ts, 96, 18))
|
||||
|
||||
let classesAreWrong: { id: string, ...C, ...D } =
|
||||
>classesAreWrong : Symbol(classesAreWrong, Decl(objectSpread.ts, 95, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 95, 22))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 42, 42))
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 92, 44))
|
||||
>classesAreWrong : Symbol(classesAreWrong, Decl(objectSpread.ts, 97, 3))
|
||||
>id : Symbol(id, Decl(objectSpread.ts, 97, 22))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 44, 29))
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 94, 44))
|
||||
|
||||
f(new C(), new D())
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 79, 55))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 42, 42))
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 92, 44))
|
||||
>f : Symbol(f, Decl(objectSpread.ts, 81, 55))
|
||||
>C : Symbol(C, Decl(objectSpread.ts, 44, 29))
|
||||
>D : Symbol(D, Decl(objectSpread.ts, 94, 44))
|
||||
|
||||
@@ -223,7 +223,7 @@ getter.a = 12;
|
||||
>a : number
|
||||
>12 : 12
|
||||
|
||||
// null, undefined, functions and primitives result in { }
|
||||
// null, undefined, functions and primitives besides string result in { }
|
||||
let spreadNull = { ...null };
|
||||
>spreadNull : {}
|
||||
>{ ...null } : {}
|
||||
@@ -238,10 +238,6 @@ let spreadNum = { ...12 };
|
||||
>spreadNum : {}
|
||||
>{ ...12 } : {}
|
||||
|
||||
let spreadStr = { ...'foo' };
|
||||
>spreadStr : {}
|
||||
>{ ...'foo' } : {}
|
||||
|
||||
let spreadBool = { ...false };
|
||||
>spreadBool : {}
|
||||
>{ ...false } : {}
|
||||
@@ -253,6 +249,11 @@ let spreadFunc = { ...(function () { }) };
|
||||
>(function () { }) : () => void
|
||||
>function () { } : () => void
|
||||
|
||||
// strings get a numeric indexer: [n: number]: string
|
||||
let spreadStr = { ...'foo' };
|
||||
>spreadStr : { [x: number]: string; }
|
||||
>{ ...'foo' } : { [x: number]: string; }
|
||||
|
||||
// methods are not enumerable
|
||||
class C { p = 1; m() { } }
|
||||
>C : C
|
||||
|
||||
@@ -11,8 +11,8 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(30,12): error TS233
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(32,17): error TS2339: Property 'undefined' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(36,11): error TS2339: Property 'toFixed' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(38,11): error TS2339: Property 'toFixed' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(40,11): error TS2339: Property 'length' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(41,11): error TS2339: Property 'charAt' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(40,11): error TS2339: Property 'length' does not exist on type '{ [x: number]: string; }'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(41,11): error TS2339: Property 'charAt' does not exist on type '{ [x: number]: string; }'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(45,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '{}' has no compatible call signatures.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(49,12): error TS2339: Property 'b' does not exist on type '{}'.
|
||||
tests/cases/conformance/types/spread/objectSpreadNegative.ts(55,9): error TS2339: Property 'm' does not exist on type '{ p: number; }'.
|
||||
@@ -86,10 +86,10 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(63,12): error TS232
|
||||
let spreadStr = { ...'foo' };
|
||||
spreadStr.length; // error, no 'length'
|
||||
~~~~~~
|
||||
!!! error TS2339: Property 'length' does not exist on type '{}'.
|
||||
!!! error TS2339: Property 'length' does not exist on type '{ [x: number]: string; }'.
|
||||
spreadStr.charAt(1); // error, no methods either
|
||||
~~~~~~
|
||||
!!! error TS2339: Property 'charAt' does not exist on type '{}'.
|
||||
!!! error TS2339: Property 'charAt' does not exist on type '{ [x: number]: string; }'.
|
||||
let spreadBool = { ...true };
|
||||
spreadBool.valueOf(); // error, what were you thinking?
|
||||
let spreadFunc = { ...function () { } }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
lib.d.ts(28,18): error TS2300: Duplicate identifier 'eval'.
|
||||
lib.d.ts(32,18): error TS2300: Duplicate identifier 'eval'.
|
||||
tests/cases/compiler/variableDeclarationInStrictMode1.ts(2,5): error TS1100: Invalid use of 'eval' in strict mode.
|
||||
tests/cases/compiler/variableDeclarationInStrictMode1.ts(2,5): error TS2300: Duplicate identifier 'eval'.
|
||||
|
||||
|
||||
@@ -35,14 +35,16 @@ let getter: { a: number, c: number } =
|
||||
{ ...op, c: 7 }
|
||||
getter.a = 12;
|
||||
|
||||
// null, undefined, functions and primitives result in { }
|
||||
// null, undefined, functions and primitives besides string result in { }
|
||||
let spreadNull = { ...null };
|
||||
let spreadUndefind = { ...undefined };
|
||||
let spreadNum = { ...12 };
|
||||
let spreadStr = { ...'foo' };
|
||||
let spreadBool = { ...false };
|
||||
let spreadFunc = { ...(function () { }) };
|
||||
|
||||
// strings get a numeric indexer: [n: number]: string
|
||||
let spreadStr = { ...'foo' };
|
||||
|
||||
// methods are not enumerable
|
||||
class C { p = 1; m() { } }
|
||||
let c: C = new C()
|
||||
|
||||
Reference in new issue
Block a user