-
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: Re: TypeScript - jak uzyskać zmienne prywatne? Gdzie korzyści z TS?
Date: Thu, 5 Sep 2019 19:58:32 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 78
Message-ID: <qkrica$s14$1@news.icm.edu.pl>
References: <qkp5ov$imf$1@news.icm.edu.pl> <bG%bF.588988$GfB1.22808@fx36.am4>
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 1567706314 28708 89.77.183.104 (5 Sep 2019 17:58:34 GMT)
X-Complaints-To: u...@n...icm.edu.pl
NNTP-Posting-Date: Thu, 5 Sep 2019 17:58:34 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101
Thunderbird/68.0
In-Reply-To: <bG%bF.588988$GfB1.22808@fx36.am4>
Content-Language: pl
Xref: news-archive.icm.edu.pl pl.comp.www:403638
[ ukryj 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
Następne wpisy z tego wątku
- 05.09.19 20:21 Marek S
- 06.09.19 13:55 Tomek
- 06.09.19 14:57 Marek S
- 07.09.19 16:12 Roman Tyczka
- 08.09.19 00:07 Marek S
Najnowsze wątki z tej grupy
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
- Czy istnieje jakiś emulator przeglądarek pod Mac'a?
- taka sama konfiguracja dla localhost i produkcji
Najnowsze wątki
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-21 Re: Dla mr. J.F`a, Trybuna i Wiesiaczka którzy "troszczą" się o państwowe i u których 0 pragmatyzmu
- 2024-11-20 "betamaxy" i inne voip-y dzisiaj
- 2024-11-21 Strach się bać
- 2024-11-21 Koniec smrodów
- 2024-11-20 Krematorium
- 2024-11-20 Taki tam szkolny problem...
- 2024-11-20 LIR2032 a ML2032
- 2024-11-20 SmartWatch Multimetr bezprzewodowy
- 2024-11-21 Środa Wielkopolska => Konsultant SAP <=
- 2024-11-21 Łódź => Spedytor Międzynarodowy <=
- 2024-11-21 Wrocław => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-21 Kraków => Lead Java EE Developer <=
- 2024-11-21 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=