El ESNext actual contiene una propuesta para miembros privados; por ejemplo:
class Person { #firstName; #lastName; constructor(firstName, lastName) { this.#firstName = firstName; this.#lastName = lastName; } toString() { return `${this.#firstName} ${this.#lastName}`; } } const person = new Person("John", "Smith"); const firstName = person.firstName; // ERROR: Property 'firstName' does not exist on type 'Person'. const fullName = person.toString(); // John SmithTypeScript ha admitido miembros públicos, protegidos y privados (IIRC) desde el principio, aunque se borran porque no hay un equivalente en JavaScript.
Lo que quiero saber es si TypeScript se puede configurar (actual, en la hoja de ruta o en discusión) para admitir la asignación de miembros private a privados de ESNext; por ejemplo:
class Person { constructor(private firstName: string = "", private lastName: string = "") { } toString() { return `${this.firstName} ${this.lastName}`; } }Compilado (Objetivo = ESNext)
class Person { #firstName; #lastName; constructor(firstName = "", lastName = "") { this.#firstName = firstName; this.#lastName = lastName; } toString() { return `${this.#firstName} ${this.#lastName}`; } }Compilado (Objetivo <= ES2021)
"use strict"; class Person { constructor(firstName = "", lastName = "") { this.firstName = firstName; this.lastName = lastName; } toString() { return `${this.firstName} ${this.lastName}`; } }