typestar

Miembros de clase en TypeScript

Modificadores de acceso, propiedades de parámetro y las dos clases de privado.

class Session {
  #secret = "hidden";
  protected runs: number[] = [];

  constructor(
    public readonly lang: string,
    private target = 90,
  ) {}

  record(tpm: number): this {
    this.runs.push(tpm);
    return this;
  }

  get stars(): number {
    return Math.max(...this.runs) >= this.target ? 3 : 1;
  }

  reveal(): string {
    return this.#secret;
  }
}

class Timed extends Session {
  get count(): number {
    return this.runs.length; // protected: visible here
  }
}

const timed = new Timed("ts", 95).record(98) as Timed;
console.log(timed.lang, timed.stars, timed.count, timed.reveal());

Cómo funciona

  1. private es de compilación; #field se aplica en tiempo de ejecución.
  2. Una propiedad de parámetro declara y asigna en un solo lugar.
  3. protected es visible para las subclases; readonly, para ningún escritor.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
31
Caracteres a escribir
557
Tokens
158
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 95 segundos.

Escribe este fragmento

Paso 2 de 4 en Clases; paso 2 de 19 en Clases y patrones.

← Anterior Siguiente →