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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
//// [tests/cases/conformance/controlFlow/controlFlowInOperator.ts] ////
//// [controlFlowInOperator.ts]
const a = 'a';
const b = 'b';
const d = 'd';
type A = { [a]: number; };
type B = { [b]: string; };
declare const c: A | B;
if ('a' in c) {
c; // A
c['a']; // number;
}
if ('d' in c) {
c; // never
}
if (a in c) {
c; // A
c[a]; // number;
}
if (d in c) {
c; // never
}
// repro from https://github.com/microsoft/TypeScript/issues/54790
function uniqueID_54790(
id: string | undefined,
seenIDs: { [key: string]: string }
): string {
if (id === undefined) {
id = "1";
}
if (!(id in seenIDs)) {
return id;
}
for (let i = 1; i < Number.MAX_VALUE; i++) {
const newID = `${id}-${i}`;
if (!(newID in seenIDs)) {
return newID;
}
}
throw Error("heat death of the universe");
}
function uniqueID_54790_2(id: string | number, seenIDs: object) {
id = "a";
for (let i = 1; i < 3; i++) {
const newID = `${id}`;
if (newID in seenIDs) {
}
}
}
function uniqueID_54790_3(id: string | number, seenIDs: object) {
id = "a";
for (let i = 1; i < 3; i++) {
const newID = id;
if (newID in seenIDs) {
}
}
}
//// [controlFlowInOperator.js]
var a = 'a';
var b = 'b';
var d = 'd';
if ('a' in c) {
c; // A
c['a']; // number;
}
if ('d' in c) {
c; // never
}
if (a in c) {
c; // A
c[a]; // number;
}
if (d in c) {
c; // never
}
// repro from https://github.com/microsoft/TypeScript/issues/54790
function uniqueID_54790(id, seenIDs) {
if (id === undefined) {
id = "1";
}
if (!(id in seenIDs)) {
return id;
}
for (var i = 1; i < Number.MAX_VALUE; i++) {
var newID = "".concat(id, "-").concat(i);
if (!(newID in seenIDs)) {
return newID;
}
}
throw Error("heat death of the universe");
}
function uniqueID_54790_2(id, seenIDs) {
id = "a";
for (var i = 1; i < 3; i++) {
var newID = "".concat(id);
if (newID in seenIDs) {
}
}
}
function uniqueID_54790_3(id, seenIDs) {
id = "a";
for (var i = 1; i < 3; i++) {
var newID = id;
if (newID in seenIDs) {
}
}
}
|