javascript - Typescript generating redundant variable -


consider following typescript code:

module demoappmodule{     'use strict';      export module nest{         export var hello = function () {             alert('hello!');         };     } }  demoappmodule.nest.hello(); 

after transpiling have following javascript code:

var demoappmodule; (function (demoappmodule) {     'use strict';      (function (nest) {         nest.hello = function () {             alert('hello!');         };     })(demoappmodule.nest || (demoappmodule.nest = {}));     var nest = demoappmodule.nest; })(demoappmodule || (demoappmodule = {}));  demoappmodule.nest.hello(); 

why line generated? hurts eyes.

var nest = demoappmodule.nest; 

short answer: needed access module variable locally. e.g.

module demoappmodule{     'use strict';      export module nest{         export var hello = function () {             alert('hello!');         };     }      // following not possible without line      console.log(nest.hello); }  demoappmodule.nest.hello(); 

longer answer: similar var added before module e.g. notice var x:

// typescript  module x{export var foo;} // generated javascript  var x; (function (x) {     x.foo; })(x || (x = {})); 

but when inside module + export module var needs added outermodule.innermodule not var innermodule upfront. add outermodule , create local variable point innermodule can see in generated javascript:

// notice var here  var demoappmodule; (function (demoappmodule) {     'use strict';      // notice no var here      (function (nest) {         nest.hello = function () {             alert('hello!');         };     })(demoappmodule.nest || (demoappmodule.nest = {}));     // notice var assinged afterwards     var nest = demoappmodule.nest;      // following not possible without line     console.log(nest.hello); })(demoappmodule || (demoappmodule = {}));  demoappmodule.nest.hello(); 

Comments

Popular posts from this blog

java - activate/deactivate sonar maven plugin by profile? -

python - TypeError: can only concatenate tuple (not "float") to tuple -

java - What is the difference between String. and String.this. ? -