1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 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 + ""]);
}
|