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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
//// [logicalAssignment4.ts]
function foo1(results: number[] | undefined) {
(results ||= []).push(100);
}
function foo2(results: number[] | undefined) {
(results ??= []).push(100);
}
function foo3(results: number[] | undefined) {
results ||= [];
results.push(100);
}
function foo4(results: number[] | undefined) {
results ??= [];
results.push(100);
}
interface ThingWithOriginal {
name: string;
original?: ThingWithOriginal
}
declare const v: number
function doSomethingWithAlias(thing: ThingWithOriginal | undefined, defaultValue: ThingWithOriginal | undefined) {
if (v === 1) {
if (thing &&= thing.original) {
thing.name;
}
}
else if (v === 2) {
if (thing &&= defaultValue) {
thing.name;
defaultValue.name
}
}
else if (v === 3) {
if (thing ||= defaultValue) {
thing.name;
defaultValue.name;
}
}
else {
if (thing ??= defaultValue) {
thing.name;
defaultValue.name;
}
}
}
//// [logicalAssignment4.js]
"use strict";
function foo1(results) {
(results ||= []).push(100);
}
function foo2(results) {
(results ??= []).push(100);
}
function foo3(results) {
results ||= [];
results.push(100);
}
function foo4(results) {
results ??= [];
results.push(100);
}
function doSomethingWithAlias(thing, defaultValue) {
if (v === 1) {
if (thing &&= thing.original) {
thing.name;
}
}
else if (v === 2) {
if (thing &&= defaultValue) {
thing.name;
defaultValue.name;
}
}
else if (v === 3) {
if (thing ||= defaultValue) {
thing.name;
defaultValue.name;
}
}
else {
if (thing ??= defaultValue) {
thing.name;
defaultValue.name;
}
}
}
|