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
privatees de compilación;#fieldse aplica en tiempo de ejecución.- Una propiedad de parámetro declara y asigna en un solo lugar.
protectedes visible para las subclases;readonly, para ningún escritor.
Palabras clave y builtins usados aquí
Mathasclassconstconstructorextendsnumberprivateprotectedpublicreadonlyreturnstringthis
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.
Paso 2 de 4 en Clases; paso 2 de 19 en Clases y patrones.