eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwTypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS? › Re: TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
  • Data: 2019-09-05 19:58:32
    Temat: Re: TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
    Od: Marek S <p...@s...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2019-09-05 o 05:54, Szyk Cech pisze:

    > Na pewno wiesz co robisz?

    Wydaje mi się, że tak. Od lat programuję w natywnym JS.

    > _message raczej powinno być tylko jedno w obu klasach. Dziedziczenie
    > polega na tym, że od przodka wjeżdża wszystko.
    > Inny problem jest taki, że _message jest prywatna.

    No i o tym problemie mowa. W natywnym JS ES6 nie mam problemu z
    tworzeniem zmiennych prywatnych, a i metod też - choć ponoć takowe nie
    istnieją. TS już tego nie potrafi więc w tym zakresie kuleje. Oto przykład:

    Moduł 1:

    let privateMethod = Symbol();
    let privateVar = Symbol();

    class a {
    constructor() {
    this[privateVar]=5;
    }

    this[privateMethod]() {
    console.log(this[privateVar]);
    }

    printA() {
    this[privateMethod]();
    }

    }

    Moduł 2:

    import a from ...

    let privateMethod = Symbol();
    let privateVar = Symbol();

    class b extends a {
    constructor() {
    this[privateVar]=10;
    }

    printB() {
    this.printA();
    console.log(this[privateVar]);
    }

    }

    let obj = new b();
    obj.printB(); // metoda publiczna

    // 5
    // 10

    obj.printA(); //metoda publiczna

    //5

    obj[privateMethod](); //metoda prywatna

    //error

    W powyższym przykładzie privateVar jest prawdziwie prywatne dla obu
    klas. Wywołanie prywatnej metody privateMethod kończy się błędem. Da się
    to zrobić w ES6? Da się! A TypeScript wymięka. A wystarczyłoby aby
    transkodował prywatne zmienne i metody do konstrukcji z wykorzystaniem
    symboli.

    Kod pisałem z palca - więc mogłem jakieś błędy popełnić.

    --
    Pozdrawiam,
    Marek

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: