# Metodos de clases

# Atributos de solo lectura

READONLY

Se le pasa a la propiedad el atributo readonly
private readonly nombre: string

# get / set

class Curso = {
   constructor(private _id: number, private _nombre: string){

   }

   // Getters
   get id(){
      return this._id
   }

   get nombre(){
      return this._nombre
   }

   // Setters
   set id(id: number){
      this._id = id
   }

   set nombre(nombre: string){
      if(nombre.length <= 3){
         return
      }
      this._nombre = nombre
   }
}
  • Utilizacion de los Getters y Setters
const curso_1 = new Curso(1, 'TypeScript');

console.log(curso_1.nombre); // get nombre
console.log((curso_1.nombre = 'Super TypeScript')); // set nombre

# De clase

Ejemplo 1

  • Definicion de una Clases
class EscuelaProgramacion = {
   nombre: string
   cursos: string []

   constructor(nombre: string) {
      this.nombre = nombre
      this.cursos = []
   }

   agregarCurso(curso: string): void{
      this.cursos.push(curso)
   }
}
  • Instancia de la clase
//const escuela = new EscuelaProgramacion('EProg')

let escuela: EscuelaProgramacion;
escuela = new EscuelaProgramacion('EProg');

escuela.agregarCurso('TypeScript');
escuela.agregarCurso('Angular');

# Modificadores de acceso

Nota

(-) private --> Solo accesible desde la propia clase
(#) protected --> Accesible desde una clase que hereda de esta
(+) public --> Accesible desde toda la app

Ejemplo 2 Definición de las clases

class Curso = {
   private id: number
   private nombre: string

   constructor(id: number, nombre: string){
      this.id = id
      this.nombre = nombre
   }
}

Simplificando la clase Curso

class Curso = {
   constructor(private id: number, private nombre: string){

   }
}
class EscuelaProgramación = {
  private nombre: string
  private cursos: Curso[]

  constructor(nombre: string) {
    this.nombre = nombre
				this.cursos = []
  }

  agregarCurso(curso: Curso): void{
    this.cursos.push(curso)
  }

}

Instancia de la clase

let escuela: EscuelaProgramacion;
escuela = new EscuelaProgramacion('EProg');

escuela.agregarCurso(new Curso(1, 'TypeScript'));
escuela.agregarCurso(new Curso(2, 'Angular'));