Closed
Description
TypeScript Version: 2.1.1 / 2.2.0 nightly (current master)
As far as I understood from both #11263 and #11432, control flow analysis for implicit any and array initialization shouldn't be limited to the case when --noImplicitAny is enabled.
But currently it works only if --noImplicitAny is on.
If --noImplicitAny is off, variables are treated as 'any', and arrays are treated as 'any[]', after all the initializations.
function foo(flag: boolean) {
let a;
if (flag)
a = 5;
else
a = true;
a; // if --noImplicitAny is on, it is 'number | boolean', otherwise, it is 'any'
}
Is it an expected behavior, or should CFA for implicit any and array initialization work regardless of the state of --noImplicitAny flag?