TypeScriptLección 10 de 16
Clases y modificadores de acceso
Una clase de TypeScript es una clase de JavaScript con tipos y modificadores de acceso. Los modificadores deciden quién puede leer y cambiar cada campo.
Lo esencial
- public es el valor por defecto: el campo es accesible para todos.
- private solo funciona dentro de la clase; protected también en las subclases.
- readonly se asigna una sola vez, normalmente en el constructor.
- constructor(public readonly label: string) declara y rellena un campo en una línea.
- private solo lo comprueba el compilador; la privacidad real en JavaScript son los campos con #.
Ejemplo
interface Resettable { reset(): void;} class Counter implements Resettable { private count = 0; // "public readonly label" declares and fills a property in one go constructor(public readonly label: string) {} increment(): void { this.count++; } reset(): void { this.count = 0; } get value(): number { return this.count; }} const clicks = new Counter("clicks");clicks.increment();clicks.increment();// clicks.count = 10; // error: 'count' is private// clicks.label = "taps"; // error: 'label' is read-only console.log(`${clicks.label}: ${clicks.value}`);clicks.reset();console.log(`after reset: ${clicks.value}`);Desde fuera no se pueden cambiar ni count ni label, por eso las dos líneas con error están comentadas. El valor se lee con el getter value e implements comprueba que reset existe.
Tarea
Cómo usar el editor⌘ Enter o Ctrl Enter ejecuta el código, ⇧ ⌘ Enter comprueba la tarea.Tab y Mayús Tab sangran la línea o la selección; Esc y luego Tab sale del editor.La comprobación compara lo que imprimió el programa con la tarea; los espacios al final de línea no cuentan.Tras dos comprobaciones fallidas puedes ver la solución. Tu código se guarda en este navegador.Haz privado balance, añade un método withdraw que nunca deje el saldo en negativo y un getter total. Salida: «Withdraw 20: true», «Withdraw 40: false», «Mia has 30».
Salida
Aquí aparecerá lo que imprima el programa.