简体   繁体   English

typescript getter / setter重载

[英]typescript getter / setter overload

Is there a way to overload a typescript getter / setter? 有没有办法重载一个打字稿getter / setter?

I know that typescript provides function overloading so i came up with something like this: 我知道打字稿提供了函数重载,所以我想出了类似这样的东西:

public get stringOrNumber(): string { return this._stringOrNumber; }

public set stringOrNumber(value: number);
public set stringOrNumber(value: string) { 
    if(typeof stringOrNumber == 'number') {
        this._stringOrNumber = value.toString();
    } else {
        this._stringOrNumber = value;
    } 
}

But unfortunately this doesn't work =) 但不幸的是,这不起作用=)

Do you mean something like this? 你的意思是这样的吗?

class A {

    protected _stringOrNumber: string|number;

    public get stringOrNumber(): string|number { 
        return this._stringOrNumber; 
    }

    public set stringOrNumber(value: string|number) { 
        if(typeof this.stringOrNumber === 'number') {
            this._stringOrNumber = value.toString();
        } else {
            this._stringOrNumber = value;
        } 
    }
}

[ Playground ] [ 游乐场 ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM