I Typoskript Version 1.0.1.0Wo kommt das gehen „use strict“, wenn Typoskript und AMD-Module mit
Wenn Typoskript mit verwende und AMD-Module zusammen, wo genau soll ich die „use strict“ Anweisung schreiben? Sollte es über oder unter die Importe gehen?
Ich kann es schreiben über die Importe, so dass dieser Typoskript Code:
"use strict";
import Backbone = require('backbone');
class MyClass extends Backbone.View<Backbone.Model> { }
export = MyClass;
Ergebnisse in dieser JavaScript mit der Anweisung an den Anfang der Datei:
"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;
});
Oder ich setzen kann die "use strict" Aussage unter meinen Importen. So dass dieser Typoskript:
import Backbone = require('backbone');
"use strict";
class MyClass extends Backbone.View<Backbone.Model> { }
export = MyClass;
Ergebnisse in dieser Javascript mit der Aussage, an der Spitze der RequireJS Funktionsdeklaration:
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;
});
Welche ist richtig? TSLint meldet keine Verletzung, selbst wenn die Anweisung vollständig fehlt. Ist das vielleicht ein Fehler in TSLint?
Irgendeine Meinung über TSLint? Es scheint mir so zu sein, dass dies als Teil des "Use-strict" Verstoßes bestätigt werden sollte. –
Ich wäre überrascht, wenn TSLint ein Problem hätte. Ich denke, die Regel ist, dass "use strict" auf der obersten Ebene eines Moduls sein sollte - also hängt es von TSLints genauer Definition von "top level" ab. – Fenton
@Fenton "auto-generierten Code ist strikt-compliant.", Eigentlich nein ist es nicht, die 'this.constructor = d' Zeile in der' extends' Helper wird stumm gescheitert, die '.constructor' -Eigenschaft ist nicht unter strict zuweisbar Modus. – trusktr