typestar

Clases abstractas en TypeScript

Una base que no puede instanciarse, con miembros que la subclase debe proveer.

interface Describable {
  describe(): string;
}

abstract class Check implements Describable {
  abstract readonly name: string;
  abstract passes(value: string): boolean;

  describe(): string {
    return `${this.name} check`;
  }

  report(value: string): string {
    return `${this.describe()}: ${this.passes(value) ? "pass" : "fail"}`;
  }
}

class MinLength extends Check {
  readonly name = "min length";
  constructor(private floor: number) {
    super();
  }
  passes(value: string): boolean {
    return value.length >= this.floor;
  }
}

const checks: Check[] = [new MinLength(3)];
console.log(checks.map((check) => check.report("ada")));

Cómo funciona

  1. Los miembros abstract no tienen cuerpo y deben implementarse.
  2. La base todavía puede albergar comportamiento compartido y concreto.
  3. implements chequea una clase contra una interfaz.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
29
Caracteres a escribir
610
Tokens
163
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →