From 082e0956ba7441af4691827601cacb9a40ff0727 Mon Sep 17 00:00:00 2001 From: mrazauskas Date: Mon, 7 Apr 2025 19:41:03 +0300 Subject: [PATCH 1/2] Document auto-accessors in classes --- .../copy/en/handbook-v2/Classes.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/documentation/copy/en/handbook-v2/Classes.md b/packages/documentation/copy/en/handbook-v2/Classes.md index da70ad9bd633..abebb2756306 100644 --- a/packages/documentation/copy/en/handbook-v2/Classes.md +++ b/packages/documentation/copy/en/handbook-v2/Classes.md @@ -279,6 +279,32 @@ class Thing { } ``` +### Auto-Accessors + +By adding the `accessor` keyword in front of a class field, you can define a getter and a setter at once: + +```ts twoslash +class Person { + accessor name: string | undefined; +} +``` + +The above roughly desugars to: + +```js +class Person { + #name; + + get name() { + return this.#name; + } + + set name(value) { + this.#name = value; + } +} +``` + ### Index Signatures Classes can declare index signatures; these work the same as [Index Signatures for other object types](/docs/handbook/2/objects.html#index-signatures): From 3034c46d70e6ecaf0f12e0f7e440ce604e54da1c Mon Sep 17 00:00:00 2001 From: mrazauskas Date: Mon, 7 Apr 2025 19:58:53 +0300 Subject: [PATCH 2/2] update --- packages/documentation/copy/en/handbook-v2/Classes.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/documentation/copy/en/handbook-v2/Classes.md b/packages/documentation/copy/en/handbook-v2/Classes.md index abebb2756306..9928418bd542 100644 --- a/packages/documentation/copy/en/handbook-v2/Classes.md +++ b/packages/documentation/copy/en/handbook-v2/Classes.md @@ -285,15 +285,15 @@ By adding the `accessor` keyword in front of a class field, you can define a get ```ts twoslash class Person { - accessor name: string | undefined; + accessor name = ""; } ``` -The above roughly desugars to: +The above is roughly equivalent to: -```js +```ts twoslash class Person { - #name; + #name = ""; get name() { return this.#name;