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:
@@ -0,0 +1,61 @@
|
||||
//// [genericObjectRest.ts]
|
||||
const a = 'a';
|
||||
|
||||
function f1<T extends { a: string, b: number }>(obj: T) {
|
||||
let { ...r0 } = obj;
|
||||
let { a: a1, ...r1 } = obj;
|
||||
let { a: a2, b: b2, ...r2 } = obj;
|
||||
let { 'a': a3, ...r3 } = obj;
|
||||
let { ['a']: a4, ...r4 } = obj;
|
||||
let { [a]: a5, ...r5 } = obj;
|
||||
}
|
||||
|
||||
const sa = Symbol();
|
||||
const sb = Symbol();
|
||||
|
||||
function f2<T extends { [sa]: string, [sb]: number }>(obj: T) {
|
||||
let { [sa]: a1, [sb]: b1, ...r1 } = obj;
|
||||
}
|
||||
|
||||
function f3<T, K1 extends keyof T, K2 extends keyof T>(obj: T, k1: K1, k2: K2) {
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
}
|
||||
|
||||
type Item = { a: string, b: number, c: boolean };
|
||||
|
||||
function f4<K1 extends keyof Item, K2 extends keyof Item>(obj: Item, k1: K1, k2: K2) {
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
}
|
||||
|
||||
|
||||
//// [genericObjectRest.js]
|
||||
"use strict";
|
||||
var __rest = (this && this.__rest) || function (s, e) {
|
||||
var t = {};
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
||||
t[p] = s[p];
|
||||
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
||||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
|
||||
t[p[i]] = s[p[i]];
|
||||
return t;
|
||||
};
|
||||
const a = 'a';
|
||||
function f1(obj) {
|
||||
let r0 = __rest(obj, []);
|
||||
let { a: a1 } = obj, r1 = __rest(obj, ["a"]);
|
||||
let { a: a2, b: b2 } = obj, r2 = __rest(obj, ["a", "b"]);
|
||||
let { 'a': a3 } = obj, r3 = __rest(obj, ['a']);
|
||||
let { ['a']: a4 } = obj, r4 = __rest(obj, ['a']);
|
||||
let _a = a, a5 = obj[_a], r5 = __rest(obj, [typeof _a === "symbol" ? _a : _a + ""]);
|
||||
}
|
||||
const sa = Symbol();
|
||||
const sb = Symbol();
|
||||
function f2(obj) {
|
||||
let _a = sa, a1 = obj[_a], _b = sb, b1 = obj[_b], r1 = __rest(obj, [typeof _a === "symbol" ? _a : _a + "", typeof _b === "symbol" ? _b : _b + ""]);
|
||||
}
|
||||
function f3(obj, k1, k2) {
|
||||
let _a = k1, a1 = obj[_a], _b = k2, a2 = obj[_b], r1 = __rest(obj, [typeof _a === "symbol" ? _a : _a + "", typeof _b === "symbol" ? _b : _b + ""]);
|
||||
}
|
||||
function f4(obj, k1, k2) {
|
||||
let _a = k1, a1 = obj[_a], _b = k2, a2 = obj[_b], r1 = __rest(obj, [typeof _a === "symbol" ? _a : _a + "", typeof _b === "symbol" ? _b : _b + ""]);
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
=== tests/cases/conformance/types/rest/genericObjectRest.ts ===
|
||||
const a = 'a';
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 0, 5))
|
||||
|
||||
function f1<T extends { a: string, b: number }>(obj: T) {
|
||||
>f1 : Symbol(f1, Decl(genericObjectRest.ts, 0, 14))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 2, 12))
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 2, 23))
|
||||
>b : Symbol(b, Decl(genericObjectRest.ts, 2, 34))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 2, 12))
|
||||
|
||||
let { ...r0 } = obj;
|
||||
>r0 : Symbol(r0, Decl(genericObjectRest.ts, 3, 9))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
|
||||
let { a: a1, ...r1 } = obj;
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 2, 23))
|
||||
>a1 : Symbol(a1, Decl(genericObjectRest.ts, 4, 9))
|
||||
>r1 : Symbol(r1, Decl(genericObjectRest.ts, 4, 16))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
|
||||
let { a: a2, b: b2, ...r2 } = obj;
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 2, 23))
|
||||
>a2 : Symbol(a2, Decl(genericObjectRest.ts, 5, 9))
|
||||
>b : Symbol(b, Decl(genericObjectRest.ts, 2, 34))
|
||||
>b2 : Symbol(b2, Decl(genericObjectRest.ts, 5, 16))
|
||||
>r2 : Symbol(r2, Decl(genericObjectRest.ts, 5, 23))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
|
||||
let { 'a': a3, ...r3 } = obj;
|
||||
>a3 : Symbol(a3, Decl(genericObjectRest.ts, 6, 9))
|
||||
>r3 : Symbol(r3, Decl(genericObjectRest.ts, 6, 18))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
|
||||
let { ['a']: a4, ...r4 } = obj;
|
||||
>'a' : Symbol(a4, Decl(genericObjectRest.ts, 7, 9))
|
||||
>a4 : Symbol(a4, Decl(genericObjectRest.ts, 7, 9))
|
||||
>r4 : Symbol(r4, Decl(genericObjectRest.ts, 7, 20))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
|
||||
let { [a]: a5, ...r5 } = obj;
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 0, 5))
|
||||
>a5 : Symbol(a5, Decl(genericObjectRest.ts, 8, 9))
|
||||
>r5 : Symbol(r5, Decl(genericObjectRest.ts, 8, 18))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 2, 48))
|
||||
}
|
||||
|
||||
const sa = Symbol();
|
||||
>sa : Symbol(sa, Decl(genericObjectRest.ts, 11, 5))
|
||||
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
|
||||
|
||||
const sb = Symbol();
|
||||
>sb : Symbol(sb, Decl(genericObjectRest.ts, 12, 5))
|
||||
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
|
||||
|
||||
function f2<T extends { [sa]: string, [sb]: number }>(obj: T) {
|
||||
>f2 : Symbol(f2, Decl(genericObjectRest.ts, 12, 20))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 14, 12))
|
||||
>[sa] : Symbol([sa], Decl(genericObjectRest.ts, 14, 23))
|
||||
>sa : Symbol(sa, Decl(genericObjectRest.ts, 11, 5))
|
||||
>[sb] : Symbol([sb], Decl(genericObjectRest.ts, 14, 37))
|
||||
>sb : Symbol(sb, Decl(genericObjectRest.ts, 12, 5))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 14, 54))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 14, 12))
|
||||
|
||||
let { [sa]: a1, [sb]: b1, ...r1 } = obj;
|
||||
>sa : Symbol(sa, Decl(genericObjectRest.ts, 11, 5))
|
||||
>a1 : Symbol(a1, Decl(genericObjectRest.ts, 15, 9))
|
||||
>sb : Symbol(sb, Decl(genericObjectRest.ts, 12, 5))
|
||||
>b1 : Symbol(b1, Decl(genericObjectRest.ts, 15, 19))
|
||||
>r1 : Symbol(r1, Decl(genericObjectRest.ts, 15, 29))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 14, 54))
|
||||
}
|
||||
|
||||
function f3<T, K1 extends keyof T, K2 extends keyof T>(obj: T, k1: K1, k2: K2) {
|
||||
>f3 : Symbol(f3, Decl(genericObjectRest.ts, 16, 1))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 18, 12))
|
||||
>K1 : Symbol(K1, Decl(genericObjectRest.ts, 18, 14))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 18, 12))
|
||||
>K2 : Symbol(K2, Decl(genericObjectRest.ts, 18, 34))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 18, 12))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 18, 55))
|
||||
>T : Symbol(T, Decl(genericObjectRest.ts, 18, 12))
|
||||
>k1 : Symbol(k1, Decl(genericObjectRest.ts, 18, 62))
|
||||
>K1 : Symbol(K1, Decl(genericObjectRest.ts, 18, 14))
|
||||
>k2 : Symbol(k2, Decl(genericObjectRest.ts, 18, 70))
|
||||
>K2 : Symbol(K2, Decl(genericObjectRest.ts, 18, 34))
|
||||
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
>k1 : Symbol(k1, Decl(genericObjectRest.ts, 18, 62))
|
||||
>a1 : Symbol(a1, Decl(genericObjectRest.ts, 19, 9))
|
||||
>k2 : Symbol(k2, Decl(genericObjectRest.ts, 18, 70))
|
||||
>a2 : Symbol(a2, Decl(genericObjectRest.ts, 19, 19))
|
||||
>r1 : Symbol(r1, Decl(genericObjectRest.ts, 19, 29))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 18, 55))
|
||||
}
|
||||
|
||||
type Item = { a: string, b: number, c: boolean };
|
||||
>Item : Symbol(Item, Decl(genericObjectRest.ts, 20, 1))
|
||||
>a : Symbol(a, Decl(genericObjectRest.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(genericObjectRest.ts, 22, 24))
|
||||
>c : Symbol(c, Decl(genericObjectRest.ts, 22, 35))
|
||||
|
||||
function f4<K1 extends keyof Item, K2 extends keyof Item>(obj: Item, k1: K1, k2: K2) {
|
||||
>f4 : Symbol(f4, Decl(genericObjectRest.ts, 22, 49))
|
||||
>K1 : Symbol(K1, Decl(genericObjectRest.ts, 24, 12))
|
||||
>Item : Symbol(Item, Decl(genericObjectRest.ts, 20, 1))
|
||||
>K2 : Symbol(K2, Decl(genericObjectRest.ts, 24, 34))
|
||||
>Item : Symbol(Item, Decl(genericObjectRest.ts, 20, 1))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 24, 58))
|
||||
>Item : Symbol(Item, Decl(genericObjectRest.ts, 20, 1))
|
||||
>k1 : Symbol(k1, Decl(genericObjectRest.ts, 24, 68))
|
||||
>K1 : Symbol(K1, Decl(genericObjectRest.ts, 24, 12))
|
||||
>k2 : Symbol(k2, Decl(genericObjectRest.ts, 24, 76))
|
||||
>K2 : Symbol(K2, Decl(genericObjectRest.ts, 24, 34))
|
||||
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
>k1 : Symbol(k1, Decl(genericObjectRest.ts, 24, 68))
|
||||
>a1 : Symbol(a1, Decl(genericObjectRest.ts, 25, 9))
|
||||
>k2 : Symbol(k2, Decl(genericObjectRest.ts, 24, 76))
|
||||
>a2 : Symbol(a2, Decl(genericObjectRest.ts, 25, 19))
|
||||
>r1 : Symbol(r1, Decl(genericObjectRest.ts, 25, 29))
|
||||
>obj : Symbol(obj, Decl(genericObjectRest.ts, 24, 58))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
=== tests/cases/conformance/types/rest/genericObjectRest.ts ===
|
||||
const a = 'a';
|
||||
>a : "a"
|
||||
>'a' : "a"
|
||||
|
||||
function f1<T extends { a: string, b: number }>(obj: T) {
|
||||
>f1 : <T extends { a: string; b: number; }>(obj: T) => void
|
||||
>a : string
|
||||
>b : number
|
||||
>obj : T
|
||||
|
||||
let { ...r0 } = obj;
|
||||
>r0 : T
|
||||
>obj : T
|
||||
|
||||
let { a: a1, ...r1 } = obj;
|
||||
>a : any
|
||||
>a1 : string
|
||||
>r1 : Pick<T, Exclude<keyof T, "a">>
|
||||
>obj : T
|
||||
|
||||
let { a: a2, b: b2, ...r2 } = obj;
|
||||
>a : any
|
||||
>a2 : string
|
||||
>b : any
|
||||
>b2 : number
|
||||
>r2 : Pick<T, Exclude<keyof T, "a" | "b">>
|
||||
>obj : T
|
||||
|
||||
let { 'a': a3, ...r3 } = obj;
|
||||
>a3 : string
|
||||
>r3 : Pick<T, Exclude<keyof T, "a">>
|
||||
>obj : T
|
||||
|
||||
let { ['a']: a4, ...r4 } = obj;
|
||||
>'a' : "a"
|
||||
>a4 : string
|
||||
>r4 : Pick<T, Exclude<keyof T, "a">>
|
||||
>obj : T
|
||||
|
||||
let { [a]: a5, ...r5 } = obj;
|
||||
>a : "a"
|
||||
>a5 : string
|
||||
>r5 : Pick<T, Exclude<keyof T, "a">>
|
||||
>obj : T
|
||||
}
|
||||
|
||||
const sa = Symbol();
|
||||
>sa : unique symbol
|
||||
>Symbol() : unique symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
const sb = Symbol();
|
||||
>sb : unique symbol
|
||||
>Symbol() : unique symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
function f2<T extends { [sa]: string, [sb]: number }>(obj: T) {
|
||||
>f2 : <T extends { [sa]: string; [sb]: number; }>(obj: T) => void
|
||||
>[sa] : string
|
||||
>sa : unique symbol
|
||||
>[sb] : number
|
||||
>sb : unique symbol
|
||||
>obj : T
|
||||
|
||||
let { [sa]: a1, [sb]: b1, ...r1 } = obj;
|
||||
>sa : unique symbol
|
||||
>a1 : string
|
||||
>sb : unique symbol
|
||||
>b1 : number
|
||||
>r1 : Pick<T, Exclude<keyof T, unique symbol | unique symbol>>
|
||||
>obj : T
|
||||
}
|
||||
|
||||
function f3<T, K1 extends keyof T, K2 extends keyof T>(obj: T, k1: K1, k2: K2) {
|
||||
>f3 : <T, K1 extends keyof T, K2 extends keyof T>(obj: T, k1: K1, k2: K2) => void
|
||||
>obj : T
|
||||
>k1 : K1
|
||||
>k2 : K2
|
||||
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
>k1 : K1
|
||||
>a1 : T[K1]
|
||||
>k2 : K2
|
||||
>a2 : T[K2]
|
||||
>r1 : Pick<T, Exclude<keyof T, K1 | K2>>
|
||||
>obj : T
|
||||
}
|
||||
|
||||
type Item = { a: string, b: number, c: boolean };
|
||||
>Item : Item
|
||||
>a : string
|
||||
>b : number
|
||||
>c : boolean
|
||||
|
||||
function f4<K1 extends keyof Item, K2 extends keyof Item>(obj: Item, k1: K1, k2: K2) {
|
||||
>f4 : <K1 extends "a" | "b" | "c", K2 extends "a" | "b" | "c">(obj: Item, k1: K1, k2: K2) => void
|
||||
>obj : Item
|
||||
>k1 : K1
|
||||
>k2 : K2
|
||||
|
||||
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
|
||||
>k1 : K1
|
||||
>a1 : Item[K1]
|
||||
>k2 : K2
|
||||
>a2 : Item[K2]
|
||||
>r1 : Pick<Item, Exclude<"a", K1 | K2> | Exclude<"b", K1 | K2> | Exclude<"c", K1 | K2>>
|
||||
>obj : Item
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user