mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Accept new baselines
This commit is contained in:
@@ -5,7 +5,7 @@ async ({ foo, bar, ...rest }) => bar(await foo);
|
||||
>async ({ foo, bar, ...rest }) => bar(await foo) : ({ foo, bar, ...rest }: { [x: string]: any; foo: any; bar: any; }) => Promise<any>
|
||||
>foo : any
|
||||
>bar : any
|
||||
>rest : Rest<{ [x: string]: any; foo: any; bar: any; }, "foo" | "bar">
|
||||
>rest : { [x: string]: any; }
|
||||
>bar(await foo) : any
|
||||
>bar : any
|
||||
>await foo : any
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ let array = [{a: 0, b: 1}]
|
||||
|
||||
for (let { a, ...rest } of array)
|
||||
>a : number
|
||||
>rest : Rest<{ a: number; b: number; }, "a">
|
||||
>rest : { b: number; }
|
||||
>array : { a: number; b: number; }[]
|
||||
|
||||
void a
|
||||
|
||||
@@ -33,7 +33,7 @@ interface Foo {
|
||||
}
|
||||
export var { a, ...x } : Foo;
|
||||
>a : number
|
||||
>x : Rest<Foo, "a">
|
||||
>x : { b: string; }
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
export {};
|
||||
@@ -72,7 +72,7 @@ declare namespace N {
|
||||
}
|
||||
export var { a, ...x } : Foo;
|
||||
>a : number
|
||||
>x : Rest<Foo, "a">
|
||||
>x : { b: string; }
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/tslib.d.ts ===
|
||||
|
||||
@@ -19,6 +19,6 @@ var { destructuring } = a; // error
|
||||
>a : object
|
||||
|
||||
var { ...rest } = a; // ok
|
||||
>rest : object
|
||||
>rest : {}
|
||||
>a : object
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ tests/cases/conformance/types/rest/objectRest.ts(7,12): error TS2339: Property '
|
||||
tests/cases/conformance/types/rest/objectRest.ts(7,20): error TS2339: Property '1' does not exist on type 'String'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(43,8): error TS2537: Type '{ a: number; b: string; }' has no matching index signature for type 'string'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(43,35): error TS2537: Type '{ a: number; b: string; }' has no matching index signature for type 'string'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(43,57): error TS2403: Subsequent variable declarations must have the same type. Variable 'o' must be of type '{ a: number; b: string; }', but here has type 'Rest<{ a: number; b: string; }, string>'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(44,53): error TS2322: Type 'Rest<{ a: number; b: string; }, string>' is not assignable to type '{ a: number; b: string; }'.
|
||||
Property 'a' is missing in type 'Rest<{ a: number; b: string; }, string>'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(43,57): error TS2403: Subsequent variable declarations must have the same type. Variable 'o' must be of type '{ a: number; b: string; }', but here has type '{}'.
|
||||
tests/cases/conformance/types/rest/objectRest.ts(44,53): error TS2322: Type '{}' is not assignable to type '{ a: number; b: string; }'.
|
||||
Property 'a' is missing in type '{}'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/rest/objectRest.ts (6 errors) ====
|
||||
@@ -60,11 +60,11 @@ tests/cases/conformance/types/rest/objectRest.ts(44,53): error TS2322: Type 'Res
|
||||
~~~~~~~~~
|
||||
!!! error TS2537: Type '{ a: number; b: string; }' has no matching index signature for type 'string'.
|
||||
~
|
||||
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'o' must be of type '{ a: number; b: string; }', but here has type 'Rest<{ a: number; b: string; }, string>'.
|
||||
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'o' must be of type '{ a: number; b: string; }', but here has type '{}'.
|
||||
({ [computed]: stillNotGreat, [computed2]: soSo, ...o } = o);
|
||||
~
|
||||
!!! error TS2322: Type 'Rest<{ a: number; b: string; }, string>' is not assignable to type '{ a: number; b: string; }'.
|
||||
!!! error TS2322: Property 'a' is missing in type 'Rest<{ a: number; b: string; }, string>'.
|
||||
!!! error TS2322: Type '{}' is not assignable to type '{ a: number; b: string; }'.
|
||||
!!! error TS2322: Property 'a' is missing in type '{}'.
|
||||
|
||||
var noContextualType = ({ aNumber = 12, ...notEmptyObject }) => aNumber + notEmptyObject.anythingGoes;
|
||||
|
||||
@@ -13,32 +13,32 @@ var { ...clone } = o;
|
||||
|
||||
var { a, ...justB } = o;
|
||||
>a : number
|
||||
>justB : Rest<{ a: number; b: string; }, "a">
|
||||
>justB : { b: string; }
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
var { a, b: renamed, ...empty } = o;
|
||||
>a : number
|
||||
>b : any
|
||||
>renamed : string
|
||||
>empty : Rest<{ a: number; b: string; }, "a" | "b">
|
||||
>empty : {}
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
var { ['b']: renamed, ...justA } = o;
|
||||
>'b' : "b"
|
||||
>renamed : string
|
||||
>justA : Rest<{ a: number; b: string; }, "b">
|
||||
>justA : { a: number; }
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
var { 'b': renamed, ...justA } = o;
|
||||
>renamed : string
|
||||
>justA : Rest<{ a: number; b: string; }, "b">
|
||||
>justA : { a: number; }
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
var { b: { '0': n, '1': oooo }, ...justA } = o;
|
||||
>b : any
|
||||
>n : any
|
||||
>oooo : any
|
||||
>justA : Rest<{ a: number; b: string; }, "b">
|
||||
>justA : { a: number; }
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
let o2 = { c: 'terrible idea?', d: 'yes' };
|
||||
@@ -52,7 +52,7 @@ let o2 = { c: 'terrible idea?', d: 'yes' };
|
||||
var { d: renamed, ...d } = o2;
|
||||
>d : any
|
||||
>renamed : string
|
||||
>d : Rest<{ c: string; d: string; }, "d">
|
||||
>d : { c: string; }
|
||||
>o2 : { c: string; d: string; }
|
||||
|
||||
let nestedrest: { x: number, n1: { y: number, n2: { z: number, n3: { n4: number } } }, rest: number, restrest: number };
|
||||
@@ -75,7 +75,7 @@ var { x, n1: { y, n2: { z, n3: { ...nr } } }, ...restrest } = nestedrest;
|
||||
>z : number
|
||||
>n3 : any
|
||||
>nr : { n4: number; }
|
||||
>restrest : Rest<{ x: number; n1: { y: number; n2: { z: number; n3: { n4: number; }; }; }; rest: number; restrest: number; }, "x" | "n1">
|
||||
>restrest : { rest: number; restrest: number; }
|
||||
>nestedrest : { x: number; n1: { y: number; n2: { z: number; n3: { n4: number; }; }; }; rest: number; restrest: number; }
|
||||
|
||||
let complex: { x: { ka, ki }, y: number };
|
||||
@@ -88,10 +88,10 @@ let complex: { x: { ka, ki }, y: number };
|
||||
var { x: { ka, ...nested }, y: other, ...rest } = complex;
|
||||
>x : any
|
||||
>ka : any
|
||||
>nested : Rest<{ ka: any; ki: any; }, "ka">
|
||||
>nested : { ki: any; }
|
||||
>y : any
|
||||
>other : number
|
||||
>rest : Rest<{ x: { ka: any; ki: any; }; y: number; }, "x" | "y">
|
||||
>rest : {}
|
||||
>complex : { x: { ka: any; ki: any; }; y: number; }
|
||||
|
||||
({x: { ka, ...nested }, y: other, ...rest} = complex);
|
||||
@@ -101,15 +101,15 @@ var { x: { ka, ...nested }, y: other, ...rest } = complex;
|
||||
>x : { ki: any; ka: any; }
|
||||
>{ ka, ...nested } : { ki: any; ka: any; }
|
||||
>ka : any
|
||||
>nested : Rest<{ ka: any; ki: any; }, "ka">
|
||||
>nested : { ki: any; }
|
||||
>y : number
|
||||
>other : number
|
||||
>rest : Rest<{ x: { ka: any; ki: any; }; y: number; }, "x" | "y">
|
||||
>rest : {}
|
||||
>complex : { x: { ka: any; ki: any; }; y: number; }
|
||||
|
||||
var { x, ...fresh } = { x: 1, y: 2 };
|
||||
>x : number
|
||||
>fresh : Rest<{ x: number; y: number; }, "x">
|
||||
>fresh : { y: number; }
|
||||
>{ x: 1, y: 2 } : { x: number; y: number; }
|
||||
>x : number
|
||||
>1 : 1
|
||||
@@ -121,7 +121,7 @@ var { x, ...fresh } = { x: 1, y: 2 };
|
||||
>{ x, ...fresh } = { x: 1, y: 2 } : { x: number; y: number; }
|
||||
>{ x, ...fresh } : { y: number; x: number; }
|
||||
>x : number
|
||||
>fresh : Rest<{ x: number; y: number; }, "x">
|
||||
>fresh : { y: number; }
|
||||
>{ x: 1, y: 2 } : { x: number; y: number; }
|
||||
>x : number
|
||||
>1 : 1
|
||||
@@ -175,7 +175,7 @@ var removable = new Removable();
|
||||
|
||||
var { removed, ...removableRest } = removable;
|
||||
>removed : string
|
||||
>removableRest : Rest<Removable, "removed">
|
||||
>removableRest : { remainder: string; }
|
||||
>removable : Removable
|
||||
|
||||
var i: I = removable;
|
||||
@@ -184,7 +184,7 @@ var i: I = removable;
|
||||
|
||||
var { removed, ...removableRest2 } = i;
|
||||
>removed : string
|
||||
>removableRest2 : Rest<I, "removed">
|
||||
>removableRest2 : { m(): void; remainder: string; }
|
||||
>i : I
|
||||
|
||||
let computed = 'b';
|
||||
@@ -221,10 +221,10 @@ var noContextualType = ({ aNumber = 12, ...notEmptyObject }) => aNumber + notEmp
|
||||
>({ aNumber = 12, ...notEmptyObject }) => aNumber + notEmptyObject.anythingGoes : ({ aNumber, ...notEmptyObject }: { [x: string]: any; aNumber?: number; }) => any
|
||||
>aNumber : number
|
||||
>12 : 12
|
||||
>notEmptyObject : Rest<{ [x: string]: any; aNumber?: number; }, "aNumber">
|
||||
>notEmptyObject : { [x: string]: any; }
|
||||
>aNumber + notEmptyObject.anythingGoes : any
|
||||
>aNumber : number
|
||||
>notEmptyObject.anythingGoes : any
|
||||
>notEmptyObject : Rest<{ [x: string]: any; aNumber?: number; }, "aNumber">
|
||||
>notEmptyObject : { [x: string]: any; }
|
||||
>anythingGoes : any
|
||||
|
||||
|
||||
@@ -52,8 +52,8 @@ var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
>y : { ka: string; x: string; }[]
|
||||
>b : any
|
||||
>z : string
|
||||
>c : Rest<{ z: string; ki: string; ku: string; }, "z">
|
||||
>rest2 : Rest<{ a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }, "a" | "b">
|
||||
>c : { ki: string; ku: string; }
|
||||
>rest2 : { ke: string; ko: string; }
|
||||
>overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
|
||||
({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit);
|
||||
@@ -69,7 +69,7 @@ var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
>b : { ki: string; ku: string; z: string; }
|
||||
>{ z, ...c } : { ki: string; ku: string; z: string; }
|
||||
>z : string
|
||||
>c : Rest<{ z: string; ki: string; ku: string; }, "z">
|
||||
>rest2 : Rest<{ a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }, "a" | "b">
|
||||
>c : { ki: string; ku: string; }
|
||||
>rest2 : { ke: string; ko: string; }
|
||||
>overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ let array: { x: number, y: string }[];
|
||||
|
||||
for (let { x, ...restOf } of array) {
|
||||
>x : number
|
||||
>restOf : Rest<{ x: number; y: string; }, "x">
|
||||
>restOf : { y: string; }
|
||||
>array : { x: number; y: string; }[]
|
||||
|
||||
[x, restOf];
|
||||
>[x, restOf] : (number | Rest<{ x: number; y: string; }, "x">)[]
|
||||
>[x, restOf] : (number | { y: string; })[]
|
||||
>x : number
|
||||
>restOf : Rest<{ x: number; y: string; }, "x">
|
||||
>restOf : { y: string; }
|
||||
}
|
||||
let xx: number;
|
||||
>xx : number
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
tests/cases/conformance/types/rest/objectRestNegative.ts(2,10): error TS2462: A rest element must be last in a destructuring pattern.
|
||||
tests/cases/conformance/types/rest/objectRestNegative.ts(6,10): error TS2322: Type 'Rest<{ a: number; b: string; }, "b">' is not assignable to type '{ a: string; }'.
|
||||
tests/cases/conformance/types/rest/objectRestNegative.ts(6,10): error TS2322: Type '{ a: number; }' is not assignable to type '{ a: string; }'.
|
||||
Types of property 'a' are incompatible.
|
||||
Type 'number' is not assignable to type 'string'.
|
||||
tests/cases/conformance/types/rest/objectRestNegative.ts(9,31): error TS2462: A rest element must be last in a destructuring pattern.
|
||||
@@ -18,7 +18,7 @@ tests/cases/conformance/types/rest/objectRestNegative.ts(17,9): error TS2701: Th
|
||||
let notAssignable: { a: string };
|
||||
({ b, ...notAssignable } = o);
|
||||
~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'Rest<{ a: number; b: string; }, "b">' is not assignable to type '{ a: string; }'.
|
||||
!!! error TS2322: Type '{ a: number; }' is not assignable to type '{ a: string; }'.
|
||||
!!! error TS2322: Types of property 'a' are incompatible.
|
||||
!!! error TS2322: Type 'number' is not assignable to type 'string'.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ let o = { a: 1, b: 'no' };
|
||||
>'no' : "no"
|
||||
|
||||
var { ...mustBeLast, a } = o;
|
||||
>mustBeLast : Rest<{ a: number; b: string; }, "a">
|
||||
>mustBeLast : { b: string; }
|
||||
>a : number
|
||||
>o : { a: number; b: string; }
|
||||
|
||||
@@ -30,24 +30,24 @@ let notAssignable: { a: string };
|
||||
|
||||
function stillMustBeLast({ ...mustBeLast, a }: { a: number, b: string }): void {
|
||||
>stillMustBeLast : ({ ...mustBeLast, a }: { a: number; b: string; }) => void
|
||||
>mustBeLast : Rest<{ a: number; b: string; }, "a">
|
||||
>mustBeLast : { b: string; }
|
||||
>a : number
|
||||
>a : number
|
||||
>b : string
|
||||
}
|
||||
function generic<T extends { x, y }>(t: T) {
|
||||
>generic : <T extends { x: any; y: any; }>(t: T) => Rest<T, "x">
|
||||
>generic : <T extends { x: any; y: any; }>(t: T) => Pick<T, Exclude<keyof T, "x">>
|
||||
>x : any
|
||||
>y : any
|
||||
>t : T
|
||||
|
||||
let { x, ...rest } = t;
|
||||
>x : any
|
||||
>rest : Rest<T, "x">
|
||||
>rest : Pick<T, Exclude<keyof T, "x">>
|
||||
>t : T
|
||||
|
||||
return rest;
|
||||
>rest : Rest<T, "x">
|
||||
>rest : Pick<T, Exclude<keyof T, "x">>
|
||||
}
|
||||
|
||||
let rest: { b: string }
|
||||
|
||||
@@ -21,9 +21,9 @@ suddenly(({ x: a, ...rest }) => rest.y);
|
||||
>x : Symbol(x, Decl(objectRestParameter.ts, 3, 34))
|
||||
>a : Symbol(a, Decl(objectRestParameter.ts, 4, 11))
|
||||
>rest : Symbol(rest, Decl(objectRestParameter.ts, 4, 17))
|
||||
>rest.y : Symbol(y)
|
||||
>rest.y : Symbol(y, Decl(objectRestParameter.ts, 3, 48))
|
||||
>rest : Symbol(rest, Decl(objectRestParameter.ts, 4, 17))
|
||||
>y : Symbol(y)
|
||||
>y : Symbol(y, Decl(objectRestParameter.ts, 3, 48))
|
||||
|
||||
suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo' }) => rest.y + nested.ka);
|
||||
>suddenly : Symbol(suddenly, Decl(objectRestParameter.ts, 1, 1))
|
||||
@@ -35,12 +35,12 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>z : Symbol(z, Decl(objectRestParameter.ts, 5, 56))
|
||||
>ka : Symbol(ka, Decl(objectRestParameter.ts, 5, 62))
|
||||
>y : Symbol(y, Decl(objectRestParameter.ts, 5, 71))
|
||||
>rest.y : Symbol(y)
|
||||
>rest.y : Symbol(y, Decl(objectRestParameter.ts, 3, 48))
|
||||
>rest : Symbol(rest, Decl(objectRestParameter.ts, 5, 37))
|
||||
>y : Symbol(y)
|
||||
>nested.ka : Symbol(ka)
|
||||
>y : Symbol(y, Decl(objectRestParameter.ts, 3, 48))
|
||||
>nested.ka : Symbol(ka, Decl(objectRestParameter.ts, 3, 42))
|
||||
>nested : Symbol(nested, Decl(objectRestParameter.ts, 5, 24))
|
||||
>ka : Symbol(ka)
|
||||
>ka : Symbol(ka, Decl(objectRestParameter.ts, 3, 42))
|
||||
|
||||
class C {
|
||||
>C : Symbol(C, Decl(objectRestParameter.ts, 5, 107))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
function cloneAgain({ a, ...clone }: { a: number, b: string }): void {
|
||||
>cloneAgain : ({ a, ...clone }: { a: number; b: string; }) => void
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
}
|
||||
@@ -22,9 +22,9 @@ suddenly(({ x: a, ...rest }) => rest.y);
|
||||
>({ x: a, ...rest }) => rest.y : ({ x: a, ...rest }: { x: { z: any; ka: any; }; y: string; }) => string
|
||||
>x : any
|
||||
>a : { z: any; ka: any; }
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>rest.y : string
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>y : string
|
||||
|
||||
suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo' }) => rest.y + nested.ka);
|
||||
@@ -34,8 +34,8 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>x : any
|
||||
>z : any
|
||||
>12 : 12
|
||||
>nested : Rest<{ z: any; ka: any; }, "z">
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>nested : { ka: any; }
|
||||
>rest : { y: string; }
|
||||
>{ x: { z: 1, ka: 1 }, y: 'noo' } : { x: { z: number; ka: number; }; y: string; }
|
||||
>x : { z: number; ka: number; }
|
||||
>{ z: 1, ka: 1 } : { z: number; ka: number; }
|
||||
@@ -47,10 +47,10 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>'noo' : "noo"
|
||||
>rest.y + nested.ka : string
|
||||
>rest.y : string
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>y : string
|
||||
>nested.ka : any
|
||||
>nested : Rest<{ z: any; ka: any; }, "z">
|
||||
>nested : { ka: any; }
|
||||
>ka : any
|
||||
|
||||
class C {
|
||||
@@ -59,7 +59,7 @@ class C {
|
||||
m({ a, ...clone }: { a: number, b: string}): void {
|
||||
>m : ({ a, ...clone }: { a: number; b: string; }) => void
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
|
||||
@@ -68,7 +68,7 @@ class C {
|
||||
set p({ a, ...clone }: { a: number, b: string}) {
|
||||
>p : { a: number; b: string; }
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ suddenly(({ x: a, ...rest }) => rest.y);
|
||||
>x : Symbol(x, Decl(objectRestParameterES5.ts, 3, 34))
|
||||
>a : Symbol(a, Decl(objectRestParameterES5.ts, 4, 11))
|
||||
>rest : Symbol(rest, Decl(objectRestParameterES5.ts, 4, 17))
|
||||
>rest.y : Symbol(y)
|
||||
>rest.y : Symbol(y, Decl(objectRestParameterES5.ts, 3, 48))
|
||||
>rest : Symbol(rest, Decl(objectRestParameterES5.ts, 4, 17))
|
||||
>y : Symbol(y)
|
||||
>y : Symbol(y, Decl(objectRestParameterES5.ts, 3, 48))
|
||||
|
||||
suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo' }) => rest.y + nested.ka);
|
||||
>suddenly : Symbol(suddenly, Decl(objectRestParameterES5.ts, 1, 1))
|
||||
@@ -35,12 +35,12 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>z : Symbol(z, Decl(objectRestParameterES5.ts, 5, 56))
|
||||
>ka : Symbol(ka, Decl(objectRestParameterES5.ts, 5, 62))
|
||||
>y : Symbol(y, Decl(objectRestParameterES5.ts, 5, 71))
|
||||
>rest.y : Symbol(y)
|
||||
>rest.y : Symbol(y, Decl(objectRestParameterES5.ts, 3, 48))
|
||||
>rest : Symbol(rest, Decl(objectRestParameterES5.ts, 5, 37))
|
||||
>y : Symbol(y)
|
||||
>nested.ka : Symbol(ka)
|
||||
>y : Symbol(y, Decl(objectRestParameterES5.ts, 3, 48))
|
||||
>nested.ka : Symbol(ka, Decl(objectRestParameterES5.ts, 3, 42))
|
||||
>nested : Symbol(nested, Decl(objectRestParameterES5.ts, 5, 24))
|
||||
>ka : Symbol(ka)
|
||||
>ka : Symbol(ka, Decl(objectRestParameterES5.ts, 3, 42))
|
||||
|
||||
class C {
|
||||
>C : Symbol(C, Decl(objectRestParameterES5.ts, 5, 107))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
function cloneAgain({ a, ...clone }: { a: number, b: string }): void {
|
||||
>cloneAgain : ({ a, ...clone }: { a: number; b: string; }) => void
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
}
|
||||
@@ -22,9 +22,9 @@ suddenly(({ x: a, ...rest }) => rest.y);
|
||||
>({ x: a, ...rest }) => rest.y : ({ x: a, ...rest }: { x: { z: any; ka: any; }; y: string; }) => string
|
||||
>x : any
|
||||
>a : { z: any; ka: any; }
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>rest.y : string
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>y : string
|
||||
|
||||
suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo' }) => rest.y + nested.ka);
|
||||
@@ -34,8 +34,8 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>x : any
|
||||
>z : any
|
||||
>12 : 12
|
||||
>nested : Rest<{ z: any; ka: any; }, "z">
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>nested : { ka: any; }
|
||||
>rest : { y: string; }
|
||||
>{ x: { z: 1, ka: 1 }, y: 'noo' } : { x: { z: number; ka: number; }; y: string; }
|
||||
>x : { z: number; ka: number; }
|
||||
>{ z: 1, ka: 1 } : { z: number; ka: number; }
|
||||
@@ -47,10 +47,10 @@ suddenly(({ x: { z = 12, ...nested }, ...rest } = { x: { z: 1, ka: 1 }, y: 'noo'
|
||||
>'noo' : "noo"
|
||||
>rest.y + nested.ka : string
|
||||
>rest.y : string
|
||||
>rest : Rest<{ x: { z: any; ka: any; }; y: string; }, "x">
|
||||
>rest : { y: string; }
|
||||
>y : string
|
||||
>nested.ka : any
|
||||
>nested : Rest<{ z: any; ka: any; }, "z">
|
||||
>nested : { ka: any; }
|
||||
>ka : any
|
||||
|
||||
class C {
|
||||
@@ -59,7 +59,7 @@ class C {
|
||||
m({ a, ...clone }: { a: number, b: string}): void {
|
||||
>m : ({ a, ...clone }: { a: number; b: string; }) => void
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
|
||||
@@ -68,7 +68,7 @@ class C {
|
||||
set p({ a, ...clone }: { a: number, b: string}) {
|
||||
>p : { a: number; b: string; }
|
||||
>a : number
|
||||
>clone : Rest<{ a: number; b: string; }, "a">
|
||||
>clone : { b: string; }
|
||||
>a : number
|
||||
>b : string
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ const { foo, ...rest } = obj
|
||||
>obj : Symbol(obj, Decl(objectRestReadonly.ts, 7, 5))
|
||||
|
||||
delete rest.baz
|
||||
>rest.baz : Symbol(baz)
|
||||
>rest.baz : Symbol(baz, Decl(objectRestReadonly.ts, 2, 13))
|
||||
>rest : Symbol(rest, Decl(objectRestReadonly.ts, 13, 12))
|
||||
>baz : Symbol(baz)
|
||||
>baz : Symbol(baz, Decl(objectRestReadonly.ts, 2, 13))
|
||||
|
||||
|
||||
@@ -32,12 +32,12 @@ const obj: Readonly<ObjType> = {
|
||||
|
||||
const { foo, ...rest } = obj
|
||||
>foo : string
|
||||
>rest : Rest<Readonly<ObjType>, "foo">
|
||||
>rest : { baz: string; quux: string; }
|
||||
>obj : Readonly<ObjType>
|
||||
|
||||
delete rest.baz
|
||||
>delete rest.baz : boolean
|
||||
>rest.baz : string
|
||||
>rest : Rest<Readonly<ObjType>, "foo">
|
||||
>rest : { baz: string; quux: string; }
|
||||
>baz : string
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ function foobar({ bar = {}, ...opts }: Foo = {}) {
|
||||
"use strict";
|
||||
"Some other prologue";
|
||||
opts.baz(bar);
|
||||
>opts.baz : Symbol(baz)
|
||||
>opts.baz : Symbol(Foo.baz, Decl(parameterInitializerBeforeDestructuringEmit.ts, 1, 14))
|
||||
>opts : Symbol(opts, Decl(parameterInitializerBeforeDestructuringEmit.ts, 5, 27))
|
||||
>baz : Symbol(baz)
|
||||
>baz : Symbol(Foo.baz, Decl(parameterInitializerBeforeDestructuringEmit.ts, 1, 14))
|
||||
>bar : Symbol(bar, Decl(parameterInitializerBeforeDestructuringEmit.ts, 5, 17))
|
||||
}
|
||||
|
||||
@@ -35,9 +35,9 @@ class C {
|
||||
"use strict";
|
||||
"Some other prologue";
|
||||
opts.baz(bar);
|
||||
>opts.baz : Symbol(baz)
|
||||
>opts.baz : Symbol(Foo.baz, Decl(parameterInitializerBeforeDestructuringEmit.ts, 1, 14))
|
||||
>opts : Symbol(opts, Decl(parameterInitializerBeforeDestructuringEmit.ts, 12, 27))
|
||||
>baz : Symbol(baz)
|
||||
>baz : Symbol(Foo.baz, Decl(parameterInitializerBeforeDestructuringEmit.ts, 1, 14))
|
||||
>bar : Symbol(bar, Decl(parameterInitializerBeforeDestructuringEmit.ts, 12, 17))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ function foobar({ bar = {}, ...opts }: Foo = {}) {
|
||||
>foobar : ({ bar, ...opts }?: Foo) => void
|
||||
>bar : any
|
||||
>{} : {}
|
||||
>opts : Rest<Foo, "bar">
|
||||
>opts : { baz?: any; }
|
||||
>{} : {}
|
||||
|
||||
"use strict";
|
||||
@@ -23,7 +23,7 @@ function foobar({ bar = {}, ...opts }: Foo = {}) {
|
||||
opts.baz(bar);
|
||||
>opts.baz(bar) : any
|
||||
>opts.baz : any
|
||||
>opts : Rest<Foo, "bar">
|
||||
>opts : { baz?: any; }
|
||||
>baz : any
|
||||
>bar : any
|
||||
}
|
||||
@@ -34,7 +34,7 @@ class C {
|
||||
constructor({ bar = {}, ...opts }: Foo = {}) {
|
||||
>bar : any
|
||||
>{} : {}
|
||||
>opts : Rest<Foo, "bar">
|
||||
>opts : { baz?: any; }
|
||||
>{} : {}
|
||||
|
||||
"use strict";
|
||||
@@ -46,7 +46,7 @@ class C {
|
||||
opts.baz(bar);
|
||||
>opts.baz(bar) : any
|
||||
>opts.baz : any
|
||||
>opts : Rest<Foo, "bar">
|
||||
>opts : { baz?: any; }
|
||||
>baz : any
|
||||
>bar : any
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ function f<T extends { b: string }>(p1: T, p2: T[]) {
|
||||
>p1 : T
|
||||
|
||||
var {...r2} = p2; // OK
|
||||
>r2 : T[]
|
||||
>r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T; push(...items: T[]): number; concat(...items: ConcatArray<T>[]): T[]; concat(...items: (T | ConcatArray<T>)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }
|
||||
>p2 : T[]
|
||||
|
||||
var {...r3} = t; // Error, generic type paramter
|
||||
|
||||
@@ -18,7 +18,7 @@ function one() {
|
||||
// 'a' is declared but never used
|
||||
const {a, ...bar} = foo;
|
||||
>a : number
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
>foo : { a: number; b: number; }
|
||||
|
||||
console.log(bar);
|
||||
@@ -26,7 +26,7 @@ function one() {
|
||||
>console.log : (a: any) => void
|
||||
>console : { log(a: any): void; }
|
||||
>log : (a: any) => void
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
}
|
||||
|
||||
function two() {
|
||||
@@ -44,7 +44,7 @@ function two() {
|
||||
const {a: _, ...bar} = foo;
|
||||
>a : any
|
||||
>_ : number
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
>foo : { a: number; b: number; }
|
||||
|
||||
console.log(bar);
|
||||
@@ -52,7 +52,7 @@ function two() {
|
||||
>console.log : (a: any) => void
|
||||
>console : { log(a: any): void; }
|
||||
>log : (a: any) => void
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
}
|
||||
|
||||
function three() {
|
||||
@@ -69,7 +69,7 @@ function three() {
|
||||
// 'a' is declared but never used
|
||||
const {a, ...bar} = foo; // bar should be unused
|
||||
>a : number
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
>foo : { a: number; b: number; }
|
||||
|
||||
//console.log(bar);
|
||||
@@ -90,7 +90,7 @@ function four() {
|
||||
const {a: _, ...bar} = foo; // bar should be unused
|
||||
>a : any
|
||||
>_ : number
|
||||
>bar : Rest<{ a: number; b: number; }, "a">
|
||||
>bar : { b: number; }
|
||||
>foo : { a: number; b: number; }
|
||||
|
||||
//console.log(bar);
|
||||
|
||||
Reference in New Issue
Block a user