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
- Los métodos
abstractdeben implementarse en las subclases. - Los miembros
protectedsolo son visibles para las subclases. - Un getter expone estado derivado de solo lectura.
Palabras clave y builtins usados aquí
MapTabstractbooleanclassextendsifnumberprotectedreturnstringthis
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.
Paso 1 de 4 en Clases; paso 1 de 19 en Clases y patrones.