1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251
|
//// [augmentedTypesModules.ts]
// module then var
module m1 { }
var m1 = 1; // Should be allowed
module m1a { var y = 2; } // error
var m1a = 1; // error
module m1b { export var y = 2; } // error
var m1b = 1; // error
module m1c {
export interface I { foo(): void; }
}
var m1c = 1; // Should be allowed
module m1d { // error
export class I { foo() { } }
}
var m1d = 1; // error
// module then function
module m2 { }
function m2() { }; // ok since the module is not instantiated
module m2a { var y = 2; }
function m2a() { }; // error since the module is instantiated
module m2b { export var y = 2; }
function m2b() { }; // error since the module is instantiated
// should be errors to have function first
function m2c() { };
module m2c { export var y = 2; }
module m2d { }
declare function m2d(): void;
declare function m2e(): void;
module m2e { }
function m2f() { };
module m2f { export interface I { foo(): void } }
function m2g() { };
module m2g { export class C { foo() { } } }
// module then class
module m3 { }
class m3 { } // ok since the module is not instantiated
module m3a { var y = 2; }
class m3a { foo() { } } // error, class isn't ambient or declared before the module
class m3b { foo() { } }
module m3b { var y = 2; }
class m3c { foo() { } }
module m3c { export var y = 2; }
declare class m3d { foo(): void }
module m3d { export var y = 2; }
module m3e { export var y = 2; }
declare class m3e { foo(): void }
declare class m3f { foo(): void }
module m3f { export interface I { foo(): void } }
declare class m3g { foo(): void }
module m3g { export class C { foo() { } } }
// module then enum
// should be errors
module m4 { }
enum m4 { }
module m4a { var y = 2; }
enum m4a { One }
module m4b { export var y = 2; }
enum m4b { One }
module m4c { interface I { foo(): void } }
enum m4c { One }
module m4d { class C { foo() { } } }
enum m4d { One }
//// module then module
module m5 { export var y = 2; }
module m5 { export interface I { foo(): void } } // should already be reasonably well covered
// module then import
module m6 { export var y = 2; }
//import m6 = require('');
//// [augmentedTypesModules.js]
var m1 = 1; // Should be allowed
var m1a;
(function (m1a) {
var y = 2;
})(m1a || (m1a = {})); // error
var m1a = 1; // error
var m1b;
(function (m1b) {
m1b.y = 2;
})(m1b || (m1b = {})); // error
var m1b = 1; // error
var m1c = 1; // Should be allowed
var m1d;
(function (m1d) {
var I = /** @class */ (function () {
function I() {
}
I.prototype.foo = function () { };
return I;
}());
m1d.I = I;
})(m1d || (m1d = {}));
var m1d = 1; // error
function m2() { }
; // ok since the module is not instantiated
var m2a;
(function (m2a) {
var y = 2;
})(m2a || (m2a = {}));
function m2a() { }
; // error since the module is instantiated
var m2b;
(function (m2b) {
m2b.y = 2;
})(m2b || (m2b = {}));
function m2b() { }
; // error since the module is instantiated
// should be errors to have function first
function m2c() { }
;
(function (m2c) {
m2c.y = 2;
})(m2c || (m2c = {}));
function m2f() { }
;
function m2g() { }
;
(function (m2g) {
var C = /** @class */ (function () {
function C() {
}
C.prototype.foo = function () { };
return C;
}());
m2g.C = C;
})(m2g || (m2g = {}));
var m3 = /** @class */ (function () {
function m3() {
}
return m3;
}()); // ok since the module is not instantiated
var m3a;
(function (m3a) {
var y = 2;
})(m3a || (m3a = {}));
var m3a = /** @class */ (function () {
function m3a() {
}
m3a.prototype.foo = function () { };
return m3a;
}()); // error, class isn't ambient or declared before the module
var m3b = /** @class */ (function () {
function m3b() {
}
m3b.prototype.foo = function () { };
return m3b;
}());
(function (m3b) {
var y = 2;
})(m3b || (m3b = {}));
var m3c = /** @class */ (function () {
function m3c() {
}
m3c.prototype.foo = function () { };
return m3c;
}());
(function (m3c) {
m3c.y = 2;
})(m3c || (m3c = {}));
var m3d;
(function (m3d) {
m3d.y = 2;
})(m3d || (m3d = {}));
var m3e;
(function (m3e) {
m3e.y = 2;
})(m3e || (m3e = {}));
var m3g;
(function (m3g) {
var C = /** @class */ (function () {
function C() {
}
C.prototype.foo = function () { };
return C;
}());
m3g.C = C;
})(m3g || (m3g = {}));
var m4;
(function (m4) {
})(m4 || (m4 = {}));
var m4a;
(function (m4a) {
var y = 2;
})(m4a || (m4a = {}));
(function (m4a) {
m4a[m4a["One"] = 0] = "One";
})(m4a || (m4a = {}));
var m4b;
(function (m4b) {
m4b.y = 2;
})(m4b || (m4b = {}));
(function (m4b) {
m4b[m4b["One"] = 0] = "One";
})(m4b || (m4b = {}));
var m4c;
(function (m4c) {
m4c[m4c["One"] = 0] = "One";
})(m4c || (m4c = {}));
var m4d;
(function (m4d) {
var C = /** @class */ (function () {
function C() {
}
C.prototype.foo = function () { };
return C;
}());
})(m4d || (m4d = {}));
(function (m4d) {
m4d[m4d["One"] = 0] = "One";
})(m4d || (m4d = {}));
//// module then module
var m5;
(function (m5) {
m5.y = 2;
})(m5 || (m5 = {}));
// module then import
var m6;
(function (m6) {
m6.y = 2;
})(m6 || (m6 = {}));
//import m6 = require('');
|