Typescript: Surcharges d'opérateur

Créé le 26 oct. 2015  ·  3Commentaires  ·  Source: microsoft/TypeScript

Cela simplifierait beaucoup de cas d'utilisation si nous pouvions remplacer les opérateurs relationnels, d'égalité, additifs et multiplicatifs.

Mes premières réflexions sur la façon dont cela fonctionnerait sont que les fonctions remplaceraient les opérateurs par des fonctions lors de la compilation en JavaScript.

class MyClass {
    constructor() {
    }

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

var myClass = new MyClass();

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

Devient:

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

Commentaire le plus utile

J'ai écrit un framework ORM en tapuscrit. C'est encore nouveau et ne supporte que mysql actuellement. Son architecture est basée sur le framework d'entités.
https://www.npmjs.com/package/es-entity
L'activation de la surcharge de l'opérateur prendra en charge la création de requêtes de type "LINQ".
Vous pouvez ajouter cette fonctionnalité en tant qu'extension facultative comme la fonctionnalité Décorateurs avec une implémentation expérimentale et une option de compilateur. J'espère voir cela en dactylographié.

Tous les 3 commentaires

Une chose que nous évitons de faire est l'émission basée sur le type. L'idée est que les types TypeScript n'ont aucune incidence lors de l'exécution - le code est aussi proche du JavaScript analogue que vous auriez écrit. Étant donné que, la substitution dans un appel de méthode d'un opérateur irait à l'encontre de cela.

En dehors de cela, cela est lié à # 2319, donc je vais fermer cela en double.

J'ai écrit un framework ORM en tapuscrit. C'est encore nouveau et ne supporte que mysql actuellement. Son architecture est basée sur le framework d'entités.
https://www.npmjs.com/package/es-entity
L'activation de la surcharge de l'opérateur prendra en charge la création de requêtes de type "LINQ".
Vous pouvez ajouter cette fonctionnalité en tant qu'extension facultative comme la fonctionnalité Décorateurs avec une implémentation expérimentale et une option de compilateur. J'espère voir cela en dactylographié.

Je développe numpy comme une bibliothèque en tapuscrit ( bluemath ). La surcharge de l'opérateur améliorera considérablement l'interface de ma classe NDArray .

Cette page vous a été utile?
0 / 5 - 0 notes