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

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

Login to Add New Comment
No comments have been posted yet, be the first one to comment.