1. ホーム
  2. angular

[解決済み] プロパティ 'X' はプライベートであり、クラス 'xyzComponent' 内でのみアクセス可能です。

2022-09-12 21:24:15

質問

のためにangular2アプリケーションを構築しようとしています。 生産 そのために、私は次のようになります。 ブログ . 私の後 ngc が正常にコンパイルされた後 tscコンパイル を実行すると、画像に示すようなエラーが発生します。

しばらく探していると、次のようなものが見つかりました。 ブログ で問題を説明している contextプロパティ" のセクションで説明されていますが、私は正しく理解することができません。 基本的に、私たちが変数をプライベートにしているとき、私たちは次のようになります。 ERROR: プロパティはプライベートであり、クラス内でのみアクセス可能です"。 . 私はそれが来ている理由を理解していない。

ここ数日、この問題で頭を抱えているので、親切に助けてください。

どのように解決するのですか?

与えられたコンポーネントについて、そのテンプレートによってアクセスされるそのすべてのメンバー (メソッド、プロパティ) は、AOT コンパイル シナリオでは public でなければなりません。これは、テンプレートが TS クラスに変換されるという事実によるものです。生成されたクラスとコンポーネントは現在 2 つの別々のクラスであり、クラスをまたいでプライベート メンバにアクセスすることはできません。

要するに、先取りコンパイルを使用したい場合、テンプレート内のプライベート メンバーにアクセスすることはできないのです。

より良い説明のために https://github.com/angular/angular/issues/11422