typescript - TS - how to restore the old --noImplicitAny behaviour -


could tell me how archieve situation, code like

let x; 

will throw exception , won't emit it? prefer behaviour ts versions before 2.1. maybe tslint resolve problem?

the difference since 2.1 when assign x infer actual type rather using any. before assign number x may appear has type any in fact trying use you'll find starts type undefined.

it doesn't show in one-line example until assign x can use undefined , after assigning type widens or changes accordingly.

consider code:

function foo(z: boolean) {   let x;   if (x) {   // editor sees type here `undefined`     x.foo(); // error here, type of `x` `never`   }    x = 3;     // `x` has type `number`   if (z) {     x = 'foo'; // `x` has type `string`   }   let y = x;   // both `x` , `y` have type `string|number`   console.log(y.tofixed()); // error, `tofixed` not exist on `string|number` } 

change definition let x:any; , code compile without complaint, because here type of x any.

function foo(z: boolean) {   let x: any;    x = 3;   if (z) {     x = 'foo';   }   let y = x;   console.log(y.tofixed());  } 

the type of y explicitly any because inferred type of x.

so going 1 liner:

let x; 

this not implicit any because inferred type undefined.

and answer question, no can't turn off type inferencing.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -