Typescript: 运算符重载

创建于 2015-10-26  ·  3评论  ·  资料来源: microsoft/TypeScript

如果我们可以覆盖关系、相等、加法和乘法运算符,它将简化很多用例。

我对这将如何工作的最初想法是,在编译为 JavaScript 时,函数将用函数替换运算符。

class MyClass {
    constructor() {
    }

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

var myClass = new MyClass();

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

变成:

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

最有用的评论

我用打字稿写了一个 ORM 框架。 它仍然是新的,目前仅支持 mysql。 它的架构基于实体框架。
https://www.npmjs.com/package/es-entity
启用运算符重载将支持创建类似“LINQ”的查询。
您可以将此功能添加为可选扩展,例如具有实验性实现和编译器选项的装饰器功能。 希望在打字稿中看到这一点。

所有3条评论

我们避免做的一件事是类型驱动的发射。 这个想法是 TypeScript 类型在运行时没有影响 - 代码与您编写的类似 JavaScript 一样接近。 鉴于此,将方法调用替换为运算符将与此相反。

除此之外,这与#2319 有关,因此我将其作为副本关闭。

我用打字稿写了一个 ORM 框架。 它仍然是新的,目前仅支持 mysql。 它的架构基于实体框架。
https://www.npmjs.com/package/es-entity
启用运算符重载将支持创建类似“LINQ”的查询。
您可以将此功能添加为可选扩展,例如具有实验性实现和编译器选项的装饰器功能。 希望在打字稿中看到这一点。

我正在打字稿( bluemath )中开发类似 numpy 的库。 运算符重载将显着改善我的NDArray类的接口。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jbondc picture jbondc  ·  3评论

MartynasZilinskas picture MartynasZilinskas  ·  3评论

kyasbal-1994 picture kyasbal-1994  ·  3评论

rigdern picture rigdern  ·  3评论

uber5001 picture uber5001  ·  3评论