TypeScriptのアクセス修飾子はコンパイル結果には出力されない
みなさん、アクセス修飾子って使ってますか?
ts
export class XXX {
private hoo = ""; // 誰からも見えない
protected bar = "" // 継承先からだけ見える
}
の、private
やprotected
のことです。
僕はほとんど使ってなくて。ずっと__xxx
みたいな紳士協定じみた命名で逃げていました。というのも、ECMA Scriptの #
を使う方法でPrivateなメンバを追加すると、たいていの場合ちょっと遅くなってしまうのです。
しかし、最近確認したところ、なんとなんと……このアクセス修飾子はコンパイル結果は出力されません。そして型定義のみ変わる。
つまり、ほとんど僕が考えている理想の挙動をするのです。
ほかにも勘違いをしている方がおられるかもしれないので、備忘録として残しておきます。