TypeScript, que es un superconjunto tipado de JavaScript, proporciona características adicionales a JavaScript como los tipos de datos, clases, interfaces y mucho más. Una de tales características son los modificadores de acceso que se utilizan para establecer el nivel de accesibilidad de las propiedades y métodos de las clases. Hay tres tipos de modificadores de acceso en TypeScript: 'Público', 'Privado' y 'Protegido'.
En TypeScript, cada miembro es público por defecto. Así que, en la mayoría de los casos, no hay necesidad de marcar un miembro de la clase como público. Por ejemplo:
class Saludo {
public saludo: string;
constructor(mensaje: string) {
this.saludo = mensaje;
}
public decirHola() {
return "Hola, " + this.saludo;
}
}
Cuando un miembro se marca como privado, no se puede acceder desde fuera de la clase que contiene ese miembro. Es una buena práctica para encapsular y abstraer detalles de la implementación de una clase. Por ejemplo:
class Saludo {
private saludo: string;
constructor(mensaje: string) {
this.saludo = mensaje;
}
public decirHola() {
return "Hola, " + this.saludo;
}
}
El modificador protegido
es similar al privado, pero con una excepción, que puede ser accedido dentro de las clases que heredan de la clase que contiene el miembro protegido. Por ejemplo:
class Persona {
protected nombre: string;
constructor(nombre: string) {
this.nombre = nombre;
}
}
class Empleado extends Persona {
private departamento: string;
constructor(nombre: string, departamento: string) {
super(nombre);
this.departamento = departamento;
}
public mostrarSaludo() {
return `Hola, mi nombre es ${this.nombre} y trabajo en el departamento de ${this.departamento}.`;
}
}
Todos estos modificadores de acceso están disponibles en TypeScript para ayudarte a escribir un código más limpio y estructurado. Sin embargo, es importante tener en cuenta que estos modificadores de acceso son una característica de TypeScript solamente, no están presentes en JavaScript. Por tanto, una vez que tu código TypeScript se compila a JavaScript, estos modificadores de acceso ya no existen en el código JavaScript resultante. Sin embargo, ayudan a organizar y estructurar tu código mientras desarrollas en TypeScript.