swc/crates/swc_ecma_parser/tests/tsc/controlFlowForStatement.ts

42 lines
923 B
TypeScript
Raw Normal View History

let cond: boolean;
function a() {
let x: string | number | boolean;
for (x = ""; cond; x = 5) {
x; // string | number
}
}
function b() {
let x: string | number | boolean;
for (x = 5; cond; x = x.length) {
x; // number
x = "";
}
}
function c() {
let x: string | number | boolean;
for (x = 5; x = x.toExponential(); x = 5) {
x; // string
}
}
function d() {
let x: string | number | boolean;
for (x = ""; typeof x === "string"; x = 5) {
x; // string
}
}
function e() {
let x: string | number | boolean | RegExp;
for (x = "" || 0; typeof x !== "string"; x = "" || true) {
x; // number | boolean
}
}
function f() {
let x: string | number | boolean;
for (; typeof x !== "string";) {
x; // number | boolean
if (typeof x === "number") break;
x = undefined;
}
x; // string | number
}