eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwTypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS? › TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
    From: Marek S <p...@s...com>
    Newsgroups: pl.comp.www
    Subject: TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
    Date: Wed, 4 Sep 2019 22:11:10 +0200
    Organization: ICM, Uniwersytet Warszawski
    Lines: 58
    Message-ID: <qkp5ov$imf$1@news.icm.edu.pl>
    NNTP-Posting-Host: 89-77-183-104.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.icm.edu.pl 1567627871 19151 89.77.183.104 (4 Sep 2019 20:11:11 GMT)
    X-Complaints-To: u...@n...icm.edu.pl
    NNTP-Posting-Date: Wed, 4 Sep 2019 20:11:11 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101
    Thunderbird/68.0
    X-Mozilla-News-Host: news://news.atman.pl:119
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.comp.www:403634
    [ ukryj nagłówki ]

    Witam,

    Biję się z myślami czy nie przesiąść się z JS ES6 na TypeScript. Właśnie
    testuję pod PHPStorm'em edycję i transkompilację TS i działa ten
    mechanizm wyśmienicie. Ucieszony tym zabrałem się za pierwszy skrypt i
    ... poległem na podstawach. Stworzyłem dwie klasy jako moduły) Test i Test2:

    abstract class Test {
    private _message: string;

    protected printMessage() {
    console.log(this._message);
    }

    protected constructor(message: string) {
    this._message = message;

    }
    }

    export default Test;

    *****************************************

    import Test from "./Test";

    class Test2 extends Test{
    private _message: string;

    constructor(message:string) {
    super("dupa");
    this._message = message;
    }

    execute() {
    console.log(this._message);
    this.printMessage();
    }
    }

    let demo = new Test2("my message");
    demo.execute();

    Zadeklarowałem _message jako zmienną prywatną w obu klasach i... powstał
    konflikt! Transkompilator nie poradził sobie z tym. Oczekiwałbym
    samoczynnej zmiany nazwy funkcji by w wyjściowym JS nie było konfliktów.
    Zatem jak żyć? :-) To samo dotyczy metod. Te prywatne zwalczają się
    zamiast być niezależnymi w każdej z klas.

    Póki co nie dostrzegam wielkich korzyści z przejścia na TS. Aby uzyskać
    wpełni prywatne zmienne, muszę ręcznie rzeźbić kod na symbolach - jak w
    natywnym JS. Jedynie IDE nieco ułatwi programowanie ukrywając to, co
    prywatne i czasem przypilnuje typów (ale tylko przy jawnych
    podstawieniach). Czy zatem warto bawić się w TS?

    --
    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: