🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408824

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

#408824
From: Roman Tyczka
Date: Sat, 07 Sep 2019 14:12
46 lines
3276 bytes
On Thu, 5 Sep 2019 19:43:52 +0200, Marek S wrote:

>> Nie żabym się znał na TS, choć mam w planie nim się zająć, ale tak na
>> logikę to zastanawia mnie które _message wg Ciebie miałaby wziąć metoda
>> printMessage() wywołana z klasy Test2? Dla mnie to ewidentny konflikt.
>> 
> 
> Kurcze, jesteś drugą osobą, która o to dziś mnie pyta. Dla mnie sprawa 
> jest tak oczywista jak oddychanie. Napisz sobie skrypt w PHP o podobnej 
> strukturze i tam dostaniesz odpowiedź. 

Ja nie napisałem, że nie znam odpowiedzi w innych językach, napisałem, że
dla mnie to nie jest oczywiste jak Ci się wydaje.

> Jeśli nie PHP, to może C#. Jeśli 
> miałbym tworzyć standardy, to z pewnością powieliłbym zachowanie się 
> prywatnych zmiennych z tego typu języków.

To, że w jakichś językach jest to tak czy inaczej nie jest dowodem, że tak
powinno być.
 
> Reasumując, metoda printMessage() powinno zwrócić wartość "dupa". 
> Istnienie identycznej zmiennej prywatnej w klasie potomnej nie ma prawa 
> nadpisywać tego, co jest w bazowej.
> 
> Przedstaw mi swój tok rozumowania, który powoduje, że masz wątpliwości. 
> Ciekawi mnie ich źródło.

Źródłem są przemyślenia. Oto mój tok rozumowania:
Tworzysz obiekt klasy Test2. Klasa Test2 ma prywatne pole ukryte pod
this._message. Wołasz z tego obiektu metodę, która zwraca this._message.
Skoro jest to obiekt klasy Test2 to dla tego typu this._message jest czymś
innym niż dla typy Test, prawda? Dla mnie to sprawa oczywista jak
oddychanie ;-) Jest tu wyraźna niejednoznaczność i punkt sporny, który
warto wywalić na twarz chociażby ostrzeżeniem.

To, że Java czy C# zwraca bezrefleksyjnie (czy są jakieś ostrzeżenia
kompilatora?) wcale nie jest fajne, bo łatwo o masę głupich błędów, które
transpiler TS wyłapuje jak zeznałeś. Mnie to bardzo cieszy, bo nie uważam,
że taka praktyka jak identyczna nazwa prywatnego pola w dziedziczeniu to
dobra praktyka. Ot wszystko.


-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <42gmo1ejd6qz.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <qkp5ov$imf$1@news.icm.edu.pl> <10aaekrsuhadf.dlg@tyczka.com> <qkrhgq$2sb$1@news.icm.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Subject: Re: TypeScript - jak uzyskać zmienne prywatne?
 Gdzie korzyści z TS?
Newsgroups: pl.comp.www
User-Agent: 40tude_Dialog/2.0.15.84
MIME-Version: 1.0
Sender: romek@tyczka.no.found
References: <qkp5ov$imf$1@news.icm.edu.pl> <10aaekrsuhadf.dlg@tyczka.com> <qkrhgq$2sb$1@news.icm.edu.pl>
Date: Sat, 7 Sep 2019 16:12:42 +0200
Message-ID: <42gmo1ejd6qz.dlg@tyczka.com>
Lines: 46
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 94.75.90.137
X-Trace: 1567865562 unt-rea-a-02.news.neostrada.pl 527 94.75.90.137:10203
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 3056
X-Received-Body-CRC: 4126885187
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit