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 62 63 64 65 66 67 68 69 70 71
|
//// [destructuringControlFlow.ts]
function f1(obj: { a?: string }) {
if (obj.a) {
obj = {};
let a1 = obj["a"]; // string | undefined
let a2 = obj.a; // string | undefined
}
}
function f2(obj: [number, string] | null[]) {
let a0 = obj[0]; // number | null
let a1 = obj[1]; // string | null
let [b0, b1] = obj;
([a0, a1] = obj);
if (obj[0] && obj[1]) {
let c0 = obj[0]; // number
let c1 = obj[1]; // string
let [d0, d1] = obj;
([c0, c1] = obj);
}
}
function f3(obj: { a?: number, b?: string }) {
if (obj.a && obj.b) {
let { a, b } = obj; // number, string
({ a, b } = obj);
}
}
function f4() {
let x: boolean;
({ x } = 0); // Error
({ ["x"]: x } = 0); // Error
({ ["x" + ""]: x } = 0); // Errpr
}
//// [destructuringControlFlow.js]
"use strict";
function f1(obj) {
if (obj.a) {
obj = {};
var a1 = obj["a"]; // string | undefined
var a2 = obj.a; // string | undefined
}
}
function f2(obj) {
var a0 = obj[0]; // number | null
var a1 = obj[1]; // string | null
var b0 = obj[0], b1 = obj[1];
(a0 = obj[0], a1 = obj[1]);
if (obj[0] && obj[1]) {
var c0 = obj[0]; // number
var c1 = obj[1]; // string
var d0 = obj[0], d1 = obj[1];
(c0 = obj[0], c1 = obj[1]);
}
}
function f3(obj) {
if (obj.a && obj.b) {
var a = obj.a, b = obj.b; // number, string
(a = obj.a, b = obj.b);
}
}
function f4() {
var _a;
var x;
(x = 0..x); // Error
(x = 0["x"]); // Error
(_a = "x" + "", x = 0[_a]); // Errpr
}
|