我没有ts类和枚举的层次结构:
实体/枚举/ CardClassification.ts
export enum CardClassification {
None,
Domestic,
// Other one
}
实体/枚举/ CardState.ts
export enum CardState {
InProgress = 1,
Finished = 2,
Canceled = 4
}
实体/枚举/ CardTimeType.ts
export enum CardTimeType {
XTimesPerPeriod = 1,
XMinutesPerPeriod = 2,
}
实体/ 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;
}
我有一些打字机可以使用这些实体: 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
})
我使用的是AMD模块系统和6个ECMAscript版本。我还添加了require.js。 在网页加载时我已经重新发现了2个错误: 对于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
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
此外,我检查生成的.js文件,这里真的有点乱,看看: 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
查看“../entities/enums/CardClassification”字符串。我对TypeScript,JS,RequireJS以及所有这些东西都很满意。它应该在这里吗?
2)card.js
define(["require", "exports"], function (require, exports) {
"use strict";
class Card {
}
exports.Card = Card;
});
//# sourceMappingURL=Card.js.map
card.js是空的!这里没有任何输出js。 这个东西怎么了?
更新
tsconfig.json:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es6",
"module": "amd"
},
"exclude": [
"node_modules",
"wwwroot"
]
}