mirror of
https://github.com/swc-project/swc.git
synced 2024-12-27 15:42:51 +03:00
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
// @target: es2015
|
|
var o = { a: 1, b: 'no' }
|
|
var { ...clone } = o;
|
|
var { a, ...justB } = o;
|
|
var { a, b: renamed, ...empty } = o;
|
|
var { ['b']: renamed, ...justA } = o;
|
|
var { 'b': renamed, ...justA } = o;
|
|
var { b: { '0': n, '1': oooo }, ...justA } = o;
|
|
|
|
let o2 = { c: 'terrible idea?', d: 'yes' };
|
|
var { d: renamed, ...d } = o2;
|
|
|
|
let nestedrest: { x: number, n1: { y: number, n2: { z: number, n3: { n4: number } } }, rest: number, restrest: number };
|
|
var { x, n1: { y, n2: { z, n3: { ...nr } } }, ...restrest } = nestedrest;
|
|
|
|
let complex: { x: { ka, ki }, y: number };
|
|
var { x: { ka, ...nested }, y: other, ...rest } = complex;
|
|
({x: { ka, ...nested }, y: other, ...rest} = complex);
|
|
var { x, ...fresh } = { x: 1, y: 2 };
|
|
({ x, ...fresh } = { x: 1, y: 2 });
|
|
|
|
class Removable {
|
|
private x: number;
|
|
protected y: number;
|
|
set z(value: number) { }
|
|
get both(): number { return 12 }
|
|
set both(value: number) { }
|
|
m() { }
|
|
removed: string;
|
|
remainder: string;
|
|
}
|
|
interface I {
|
|
m(): void;
|
|
removed: string;
|
|
remainder: string;
|
|
}
|
|
var removable = new Removable();
|
|
var { removed, ...removableRest } = removable;
|
|
var i: I = removable;
|
|
var { removed, ...removableRest2 } = i;
|
|
|
|
let computed = 'b';
|
|
let computed2 = 'a';
|
|
var { [computed]: stillNotGreat, [computed2]: soSo, ...o } = o;
|
|
({ [computed]: stillNotGreat, [computed2]: soSo, ...o } = o);
|
|
|
|
var noContextualType = ({ aNumber = 12, ...notEmptyObject }) => aNumber + notEmptyObject.anythingGoes;
|