Я использую TypeScript версию 1.0.1.0
При использовании TypeScript и модулей AMD вместе, где именно следует писать инструкцию "use strict"? Должна ли она превышать или ниже импорта?
Я могу написать это над импортом, так что этот 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?