Typescript: Sobrecargas do operador

Criado em 26 out. 2015  ·  3Comentários  ·  Fonte: microsoft/TypeScript

Isso simplificaria muitos casos de uso se pudéssemos substituir os operadores relacionais, de igualdade, aditivos e multiplicativos.

Meus pensamentos iniciais sobre como isso funcionaria é que as funções substituiriam os operadores por funções ao compilar para JavaScript.

class MyClass {
    constructor() {
    }

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

var myClass = new MyClass();

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

Torna-se:

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

Comentários muito úteis

Eu escrevi um framework ORM em typescript. Ainda é novo e suporta apenas mysql atualmente. Sua arquitetura é baseada no framework de entidade.
https://www.npmjs.com/package/es-entity
Habilitar a sobrecarga do operador dará suporte à criação de consultas semelhantes a 'LINQ'.
Você pode adicionar esse recurso como uma extensão opcional, como o recurso Decorators com implementação experimental e opção de compilador. Espero ver isso em texto datilografado.

Todos 3 comentários

Uma coisa que evitamos fazer é a emissão orientada por tipo. A ideia é que os tipos TypeScript não tenham influência em tempo de execução - o código é o mais próximo do JavaScript análogo que você teria escrito. Dado isso, substituir em uma chamada de método por um operador seria contra isso.

Além disso, isso está relacionado ao #2319, então vou fechar isso como uma duplicata.

Eu escrevi um framework ORM em typescript. Ainda é novo e suporta apenas mysql atualmente. Sua arquitetura é baseada no framework de entidade.
https://www.npmjs.com/package/es-entity
Habilitar a sobrecarga do operador dará suporte à criação de consultas semelhantes a 'LINQ'.
Você pode adicionar esse recurso como uma extensão opcional, como o recurso Decorators com implementação experimental e opção de compilador. Espero ver isso em texto datilografado.

Estou desenvolvendo numpy como biblioteca em typescript ( bluemath ). A sobrecarga do operador melhorará significativamente a interface da minha classe NDArray .

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

bgrieder picture bgrieder  ·  3Comentários

dlaberge picture dlaberge  ·  3Comentários

uber5001 picture uber5001  ·  3Comentários

Roam-Cooper picture Roam-Cooper  ·  3Comentários

MartynasZilinskas picture MartynasZilinskas  ·  3Comentários