Los campos propiedades de una clase pueden ser precedidos por readonly
. Esto previene que se asigne un valor al campo fuera del constructor de la clase.
class Saludo {
readonly nombre: string = "mundo";
constructor(nuevoNombre: string) {
if (!!nuevoNombre) {
this.nombre = nuevoNombre; // <- correcto, asignación es valida dentro del constructor
}
}
asignarNuevoNombre(nuevoNombre: string) {
this.nombre = nuevoNombre; // <- error, no se puede asignar valor fuera del constructor
}
}
const miNombre = new Saludo("Elio"); // <- correcto, asignación mediante el constructor
miNombre.nombre = "Alejandro"; // <- error, no se puede asignar valor fuera del constructor