-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Description
Bug Report
π Search Terms
- typeof
- private
π Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about private and typeof
β― Playground Link
Playground link with relevant code
π» Code
class Example {
#privateProp = 'hello';
constructor() {
const p: typeof this.#privateProp = 'world';
const p2: Example['#privateProp'] = 'world';
}
}
The example is kept short for reproduction, but in practice this is more for cases where you would want to use keyof this.#someProperty
and similar constructs (since here the type could just be inferred).
π Actual behavior
Specifying a type using const name: typeof this.#anESprivateProperty
is not possible.
For p
, the error is that an identifier is expected (because it's a PrivateIdentifier
and not an Identifier
from the compiler's pov?).
For p2
, the error is that the property does not exist on the type, which is logical when done from "outside" the class where the property should not be visible.
π Expected behavior
Having the ability to use typeof on an ES private property from "inside" the class itself where that property is visible, e.g. like in the example code above.