I have little hierarchy of ts classes and enums:
Entities/enums/CardClassification.ts
export enum CardClassification {
None,
Domestic,
// Other one
}
Entities/enums/CardState.ts
export enum CardState {
InProgress = 1,
Finished = 2,
Canceled = 4
}
Entities/enums/CardTimeType.ts
export enum CardTimeType {
XTimesPerPeriod = 1,
XMinutesPerPeriod = 2,
}
Entities/Card.ts
import { CardState } from "./enums/CardState";
import { CardTimeType } from "./enums/CardTimeType";
import { CardClassification } from "./enums/CardClassification";
export class Card {
public State: CardState;
public TimeType: CardTimeType;
public Classification: CardClassification;
}
And I have some typescript to work with this entities: card-controller.ts
/// <reference path="../typings/jquery/jquery.d.ts" />
/// <reference path="../typings/bootstrap/index.d.ts" />
import { Card } from "../entities/Card";
import { CardClassification } from "../entities/enums/CardClassification";
$(() => {
// Do some work here
})
I use AMD module system and 6 ECMAscript version. Also I added require.js. In time of web page loading I've recivied 2 errors: For Card.ts:
Uncaught Error: Mismatched anonymous define() module: function (require, exports) {
"use strict";
class Card {
}
exports.Card = Card;
}
http://requirejs.org/docs/errors.html#mismatch
at makeError (require.js:168)
at intakeDefines (require.js:1254)
at require.js:1452
And the same for CardClassification.ts:
Uncaught Error: Mismatched anonymous define() module: function (require, exports) {
"use strict";
var CardClassification;
(function (CardClassification) {
CardClassification[CardClassification["None"] = 0] = "None";
CardClassification[CardClassification["Domestic"] = 1] = "Domestic";
})(CardClassification = exports.CardClassification || (exports.CardClassification = {}));
}
http://requirejs.org/docs/errors.html#mismatch
at makeError (require.js:168)
at intakeDefines (require.js:1254)
at require.js:1452
Also I've check generated .js files and really some mess here, look: 1) card-controller.js
/// <reference path="../typings/jquery/jquery.d.ts" />
/// <reference path="../typings/bootstrap/index.d.ts" />
define(["require", "exports", "../entities/enums/CardClassification" <-- What is here!?], function (require, exports, CardClassification_1) {
"use strict";
$(() => {
// Do some stuff
});
});
});
//# sourceMappingURL=card-controller.js.map
Look at the "../entities/enums/CardClassification" string. I'm noobie with TypeScript, JS, RequireJS and all this stuff. Should it be here?
2) card.js
define(["require", "exports"], function (require, exports) {
"use strict";
class Card {
}
exports.Card = Card;
});
//# sourceMappingURL=Card.js.map
card.js in is empty! There is no any output js here. What's wrong with this stuff?
Update
tsconfig.json:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es6",
"module": "amd"
},
"exclude": [
"node_modules",
"wwwroot"
]
}