Skip to content

tc39/proposal-destructuring-private

Folders and files

Image for: Folders and files
NameName
Last commit message
Last commit date

Latest commit

Image for: Latest commit
 

History

Image for: History
20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image for: Repository files navigation

proposal-destructuring-private

A proposal to integrate private fields and destructuring.

class Foo {
  #x = 1;

  constructor() {
    console.log(this.#x); // => 1
    
    const { #x: x } = this;
    console.log(x); // => 1
  }

  equals({ #x: otherX }) {
    const { #x: currentX } = this;
    return currentX === otherX;
  }
}

Champions

Image for: Champions

Status

Image for: Status

Current Stage: 2

Motivation

Image for: Motivation

Destructuring is a popular feature to store local references to an object's properties. Private Field's proposal targeted the minimum features needed to support the goal of private properties in class instances. Unfortunately, this left destructuring out.

This proposal avoids questions of reification of Private Fields by limiting this to syntax only. It also doesn't need to worry about "shorthand" syntax (#x in an expression being shorthand for this.#x), because the Committee has decided we will not persue shorthand syntax after the Ergonomic Brand Checks Proposal.

Related

Image for: Related

About

Image for: About

A proposal integrate private fields and destructuring

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 3

Image for: Contributors 3
  •  
  •  
  •  

Languages

Image for: Languages