Angular: プライベートフィールドの意味論再考
DRANK

Angular v22.2.0アップデートから、コンポーネントクラスのプライベートフィールドについてテンプレートコンパイラの振る舞いが変更された。この記事では更新内容と、それにより再考しなければならないフィールド宣言の意味論について現在の考えをまとめる。更新内容Angular v22.2.0アップデートでは、コンポーネントのテンプレート内からprivate修飾子により宣言されたクラスフィールド(メンバ変数)が参照可能になった。 name フィールドを補間構文で参照してもコンパイルエラーにならない。import { Component } from '@angular/core'; @Component({ selector: 'app-greeting', template: `<p>Hello, {{ name }}!</p>`, }) export class GreetingComponent { private name = 'Angular'; } 制限が緩和されたのはprivate修飾子で宣言されたフィールドだけで、#接頭辞を使うECMAScriptのプライベートフィールドはこれまでどおり参照できずコンパイルエラーになる。import { Component } from '@angular/core'; @Component({ selector: 'app-greeting', // Error template: `<p>Hello, {{ #name }}!</p>`, }) export class GreetingComponent { #name = 'Angul…

zenn.dev
Related Topics: Angular
1 comments