49 lines
1 KiB
TypeScript
49 lines
1 KiB
TypeScript
|
// @noEmit: true
|
||
|
// @allowJs: true
|
||
|
// @checkJs: true
|
||
|
// @target: es6
|
||
|
// @Filename: module.js
|
||
|
var Outer = Outer || {};
|
||
|
Outer.app = Outer.app || {};
|
||
|
|
||
|
// @Filename: someview.js
|
||
|
Outer.app.SomeView = (function () {
|
||
|
var SomeView = function() {
|
||
|
var me = this;
|
||
|
}
|
||
|
return SomeView;
|
||
|
})();
|
||
|
Outer.app.Inner = class {
|
||
|
constructor() {
|
||
|
/** @type {number} */
|
||
|
this.y = 12;
|
||
|
}
|
||
|
}
|
||
|
var example = new Outer.app.Inner();
|
||
|
example.y;
|
||
|
/** @param {number} k */
|
||
|
Outer.app.statische = function (k) {
|
||
|
return k ** k;
|
||
|
}
|
||
|
// @Filename: application.js
|
||
|
Outer.app.Application = (function () {
|
||
|
|
||
|
/**
|
||
|
* Application main class.
|
||
|
* Will be instantiated & initialized by HTML page
|
||
|
*/
|
||
|
var Application = function () {
|
||
|
var me = this;
|
||
|
me.view = new Outer.app.SomeView();
|
||
|
};
|
||
|
return Application;
|
||
|
})();
|
||
|
// @Filename: main.js
|
||
|
var app = new Outer.app.Application();
|
||
|
var inner = new Outer.app.Inner();
|
||
|
inner.y;
|
||
|
/** @type {Outer.app.Inner} */
|
||
|
var x;
|
||
|
x.y;
|
||
|
Outer.app.statische(101); // Infinity, duh
|