【发布时间】:2014-10-16 17:49:37
【问题描述】:
我使用的是 TypeScript 版本 1.0.1.0
当同时使用 TypeScript 和 AMD 模块时,我应该在哪里写“use strict”语句?它应该高于还是低于进口?
我可以把它写在imports上面,这样TypeScript代码:
"use strict";
import Backbone = require('backbone');
class MyClass extends Backbone.View<Backbone.Model> { }
export = MyClass;
生成这个 JavaScript 文件顶部的语句:
"use strict";
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
define(["require", "exports", 'backbone'], function(require, exports, Backbone) {
var MyClass = (function (_super) {
__extends(MyClass, _super);
function MyClass() { _super.apply(this, arguments); }
return MyClass;
})(Backbone.View);
return MyClass;
});
或者我可以将“use strict”声明放在我的导入下方。所以这个 TypeScript:
import Backbone = require('backbone');
"use strict";
class MyClass extends Backbone.View<Backbone.Model> { }
export = MyClass;
在这个 Javascript 中,RequireJS 函数声明顶部的语句:
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
define(["require", "exports", 'backbone'], function(require, exports, Backbone) {
"use strict";
var MyClass = (function (_super) {
__extends(MyClass, _super);
function MyClass() { _super.apply(this, arguments); }
return MyClass;
})(Backbone.View);
return MyClass;
});
哪一个是正确的?即使语句完全丢失,TSLint 也不会报告违规。这可能是 TSLint 中的错误吗?
【问题讨论】:
标签: requirejs typescript amd