typestar

Clases abstractas y genéricos en TypeScript

Una clase base genérica con un contrato abstracto.

abstract class Repository<T> {
  protected items = new Map<number, T>();

  abstract validate(item: T): boolean;

  save(id: number, item: T): void {
    if (this.validate(item)) this.items.set(id, item);
  }

  get size(): number {
    return this.items.size;
  }
}

class UserRepo extends Repository<{ name: string }> {
  validate(item: { name: string }): boolean {
    return item.name.length > 0;
  }
}

Cómo funciona

  1. Los métodos abstract deben implementarse en las subclases.
  2. Los miembros protected solo son visibles para las subclases.
  3. Un getter expone estado derivado de solo lectura.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
378
Tokens
116
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

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

Siguiente →