JS Fundamentals - Decorators
Aug. 14, 2023, 10 a.m. (1 year, 3 months ago)
0 Comments
In this Hasty Treat, Scott and Wes talk about whether decorators are finally here, what the uses cases are for decorators, how to define a decorator, and what auto accessor is.
Show Notes
- 00:25 Welcome
- 01:00 Are decorators finally here?
- TC39 proposal
- How this compares to other versions of decorators
- 06:47 What are use cases for decorators?
- 10:55 How do you define a decorator?
- 14:20 Auto Accessor
on classes
@loggged class C {}
on fields
class C { @logged x = 1; }
Auto Accessor
class C { accessor x = 1; }
sugar for below
class C { #x = 1; // # means private get x() { return this.#x; } set x(val) { this.#x = val; } }
Can be decorated and decorator can return new get and set and init functions
function logged(value, { kind, name }) { if (kind === "accessor") { let { get, set } = value; return { get() { console.log(`getting ${name}`); return get.call(this); }, set(val) { console.log(`setting ${name} to ${val}`); return set.call(this, val); }, init(initialValue) { console.log(`initializing ${name} with value ${initialValue}`); return initialValue; } }; } // ... }
Tweet us your tasty treats
- Scott’s Instagram
- LevelUpTutorials Instagram
- Wes’ Instagram
- Wes’ Twitter
- Wes’ Facebook
- Scott’s Twitter
- Make sure to include @SyntaxFM in your tweets
- Wes Bos on Bluesky
- Scott on Bluesky
- Syntax on Bluesky
No comments have been posted yet, be the first one to comment.