2

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

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

class Parent {
}

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

class Child extends Parent {
}

到目前为止一切顺利......但是可以说,现在我希望能够直接为我的 Child 类分配一些东西,如下所示:

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);
}
4

1 回答 1

2

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

class Parent {
}

class Child extends Parent {
    constructor(private someProp: string) {
        super();
    }
}

var child = new Child("Foo Bar");
于 2013-02-06T11:21:33.950 回答