машинописный анонимный геттер и сеттер (вид упаковки и распаковки) - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужен объект Typescript (возможно, JavaScript) с анонимным сеттером и геттером. Я хотел бы что-то вроде:

class clsX{
    a : string,
    b : any,
    public get () : any { return someFuncG(); }
    public set (v: any) { someFuncS(v); } 
}
var x : clsX;
var y : any;
y = x; // y assigned with return of someFuncG.
x = y; // execute someFuncS( y )

Этого легко достичь в C # (используя оператор приведения), но мне интересно, возможно ли это в машинописи. Вид бокса и распаковки.

1 Ответ

0 голосов
/ 11 апреля 2019

То, что вы хотите - это следующее:

function dummyGet() {
    console.log('We are getting something');
    return 1;
}

function dummySet(value) {
    console.log('We are setting something');
    console.log('The new value is', value);
}

Object.defineProperty(
    window, // `global` in Node.js
    'x',
    {
        get() { return dummyGet(); },
        set(x) { dummySet(x); }
    }
);

Но, кажется, трудно быть связанным с синтаксисом класса.

...