Typescript: Bedienerüberlastungen

Erstellt am 26. Okt. 2015  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

Es würde viele Anwendungsfälle vereinfachen, wenn wir relationale, Gleichheits-, additive und multiplikative Operatoren überschreiben könnten.

Meine ersten Gedanken dazu, wie dies funktionieren würde, sind, dass Funktionen die Operatoren beim Kompilieren in JavaScript durch Funktionen ersetzen würden.

class MyClass {
    constructor() {
    }

    public Operator > (value: any):boolean {
        // compare value
    }
}

var myClass = new MyClass();

if(myClass > otherValue){
    // Do stuff
}

Wird:

var MyClass = (function () {
    function MyClass() {
    }
    MyClass.prototype.greaterThan = function (value) {
        // compare value
    };
    return MyClass;
})();
var myClass = new MyClass();
if (myClass.greaterThan(otherValue) {
    // do Stuff
}
Declined Duplicate Out of Scope

Hilfreichster Kommentar

Ich habe ein ORM-Framework in Typoskript geschrieben. Es ist noch neu und unterstützt derzeit nur mysql. Seine Architektur basiert auf dem Entity Framework.
https://www.npmjs.com/package/es-entity
Das Aktivieren des Überladens von Operatoren unterstützt das Erstellen von „LINQ“-ähnlichen Abfragen.
Sie können dieses Feature als optionale Erweiterung wie das Decorators-Feature mit experimenteller Implementierung und Compiler-Option hinzufügen. Ich hoffe, dies in Typoskript zu sehen.

Alle 3 Kommentare

Eine Sache, die wir vermeiden, ist die typgesteuerte Ausgabe. Die Idee dahinter ist, dass TypeScript-Typen zur Laufzeit keine Bedeutung haben – der Code kommt dem analogen JavaScript so nahe, wie Sie es geschrieben hätten. Angesichts dessen würde das Ersetzen eines Operators in einem Methodenaufruf dagegen sprechen.

Abgesehen davon hängt dies mit # 2319 zusammen, daher werde ich dies als Duplikat schließen.

Ich habe ein ORM-Framework in Typoskript geschrieben. Es ist noch neu und unterstützt derzeit nur mysql. Seine Architektur basiert auf dem Entity Framework.
https://www.npmjs.com/package/es-entity
Das Aktivieren des Überladens von Operatoren unterstützt das Erstellen von „LINQ“-ähnlichen Abfragen.
Sie können dieses Feature als optionale Erweiterung wie das Decorators-Feature mit experimenteller Implementierung und Compiler-Option hinzufügen. Ich hoffe, dies in Typoskript zu sehen.

Ich entwickle eine numpy-ähnliche Bibliothek in Typoskript ( Bluemath ). Durch das Überladen von Operatoren wird die Schnittstelle meiner NDArray -Klasse erheblich verbessert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen