[feature] class properties that are "readonly in public, writable in private" or other permutations · Issue #37487 · microsoft/TypeScript (original) (raw)

Search Terms

typescript readonly on the outside writable on the inside

Suggestion

Some sort of syntax to describe readonly on the outside, writeable on the inside for a given property, so we can avoid making a getter just for this purpose (or using any of the convoluted options linked in that StackOverflow post).

Use Cases

To make this pattern easier to express.

Examples

instead of having to write

class Foo { private _foo = 123 get foo() { return this._foo }

changeIt() { this._foo = 456 } }

const f = new Foo f.foo = 345 // ERROR

we would be able to write something shorter like

class Foo { publicread foo = 123

changeIt() { this.foo = 456 } }

const f = new Foo f.foo = 345 // ERROR

Checklist

My suggestion meets these guidelines: