Why js privates (#field) are polyfilled on angular build?

I wanted to use js private fields in my angular (v17) app created with angular cli. I used target = ES2022 in the tsconfig, but after the build I noticed that my private field is poly-filled with a WeakMap. I want to know the reason why it happens.

ng new my-brand-new-app

@Component({
...
})
export class AppComponent {
  #hello = 'hello';
  title = this.#hello;
}

ng build