Typescript: Sobrecargas del operador

Creado en 26 oct. 2015  ·  3Comentarios  ·  Fuente: microsoft/TypeScript

Simplificaría muchos casos de uso si pudiéramos anular los operadores relacionales, de igualdad, aditivos y multiplicativos.

Mis pensamientos iniciales sobre cómo funcionaría esto es que las funciones reemplazarían a los operadores con funciones al compilar en JavaScript.

class MyClass {
    constructor() {
    }

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

var myClass = new MyClass();

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

se convierte en:

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

Comentario más útil

He escrito un marco ORM en mecanografiado. Todavía es nuevo y solo es compatible con mysql actualmente. Su arquitectura se basa en el marco de la entidad.
https://www.npmjs.com/package/es-entidad
Habilitar la sobrecarga de operadores admitirá la creación de consultas similares a 'LINQ'.
Puede agregar esta función como una extensión opcional como la función Decorators con implementación experimental y opción de compilador. Espero ver esto en mecanografiado.

Todos 3 comentarios

Una cosa que evitamos hacer es la emisión basada en tipos. La idea es que los tipos de TypeScript no tengan relación con el tiempo de ejecución: el código es lo más parecido al JavaScript análogo que habría escrito. Dado eso, sustituir una llamada de método por un operador iría en contra de eso.

Aparte de eso, esto está relacionado con el #2319, así que lo cerraré como un duplicado.

He escrito un marco ORM en mecanografiado. Todavía es nuevo y solo es compatible con mysql actualmente. Su arquitectura se basa en el marco de la entidad.
https://www.npmjs.com/package/es-entidad
Habilitar la sobrecarga de operadores admitirá la creación de consultas similares a 'LINQ'.
Puede agregar esta función como una extensión opcional como la función Decorators con implementación experimental y opción de compilador. Espero ver esto en mecanografiado.

Estoy desarrollando una biblioteca similar a numpy en mecanografiado ( bluemath ). La sobrecarga de operadores mejorará significativamente la interfaz de mi clase NDArray .

¿Fue útil esta página
0 / 5 - 0 calificaciones