Article View: pl.comp.www
Article #408816TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
From: Marek S
Date: Wed, 04 Sep 2019 20:11
Date: Wed, 04 Sep 2019 20:11
58 lines
2541 bytes
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-mailShow 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