Syntax - Tasty Web Development Treats

Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and talking about their own experiences. They cover from JavaScript frameworks like React, to the latest advancements in CSS to simplifying web tooling.

https://syntax.fm

subscribe
share






JS Fundamentals - Decorators


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


fyyd: Podcast Search Engine
share








 August 14, 2023  22m