TypeScript中的赋值运算符重载

Assignment operator overloading in TypeScript

本文关键字:重载 赋值运算符 TypeScript      更新时间:2023-09-26

我正在编写一组TypeScript类,这些类使用继承来维护"Type"层次结构(因为需要更好的短语)。

比如说我有一个基类。。。

class Parent {
}

然后我从中派生出其他类。。。

class Child extends Parent {
}

到目前为止还不错。。。但比方说,现在我想能够直接为我的孩子类分配一些东西,比如:

private xyz: Child = "Foo Bar";

TypeScript当前引发编译器/语法错误。。。

无法将字符串转换为子级

如果我可以将字符串分配给String(它同样只是一个原型,就像我的Child类一样),我该如何重载类的赋值运算符以接受字符串?

编辑:我试过这个。。。

class Child extends Parent implements String {
}

然而,它并没有达到预期的效果。

从C#背景说起,我想我正在努力实现。。。

public static implicit operator Child(string value
{
    return new Child(value);
}

在基于类的语言中,您通常会在构造函数中接受参数,如下所示:

class Parent {
}
class Child extends Parent {
    constructor(private someProp: string) {
        super();
    }
}
var child = new Child("Foo Bar");