0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Typescript】privateプロパティに「["hoge"]」で外部アクセスできる理由

Last updated at Posted at 2025-08-04

結論

以下の二つの仕様が理由である。

ブラケット記法は動的にプロパティにアクセスできる

ブラケット記法は[]の内部に指定されたキーを元に、「実行時」に指定されたキーと一致するプロパティがあれば呼び出すという仕組みなので、コーディング時に対象のプロパティにアクセスできなくても呼び出せる。

private修飾子はTypeScript独自の仕様であり、JavaScriptのPrivateとは別物である

private修飾子はTypeScript独自の記法であり、JavaScriptの仕様であるブラケット記法に対して、呼び出せないようにするなどの動作は行えない。

※ドット記法の場合、元々存在しうるプロパティにしかアクセスできないので、private修飾子で候補自体が絞り込まれても、ドット記法自体に対して呼び出せないようにするなどの動作を行っているわけではない。

おまけ JavaScriptのPrivate

JavaScriptのPrivateは、ドット記法でのみ呼び出せるようになっており、キーの一致不一致にかかわらず、ブラケット記法では呼び出せない。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?