🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408816

TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?

#408816
From: Marek S
Date: Wed, 04 Sep 2019 20:11
58 lines
2541 bytes
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
Technical Details
Message-ID: <qkp5ov$imf$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.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
X-Trace: news.icm.edu.pl 1567627871 19151 89.77.183.104 (4 Sep 2019 20:11:11 GMT)
X-Complaints-To: usenet@news.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-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit