Clases en Typescript - El Mundo de Angular

Clases en Typescript

Typescript usa clases, ese concepto tan nombrado en la programación y tan misterioso. Pero, como te voy a explicar, es mucho más simple de lo que parece y no tan misterioso. Si querés saber lo que es una clase y cómo se usa en Typescript… ¡seguí leyendo!

Pero, ¿qué es una clase?

 

Una clase es como una estructura predefinida que sirve como molde para crear Objetos. En este «molde» se declaran atributos y métodos;  un atributo puede ser una variable, y un método puede ser una función, si lo comparamos con Javascript.

 

Clase: Cada clase es un modelo que define un conjunto de variables (el estado), y métodos apropiados para operar con dichos datos (el comportamiento). Cada objeto creado a partir de la clase se denomina instancia de la clase.

 

Atributos: son variables internas de la clase, muchas veces, al conjunto de los atributos de una clase se los llama «estado» de la clase. Estas variables pueden ser cualquier tipo de Typescript (string, number, boolean, etc) o pueden ser, también, otros objetos.

 

Métodos: se llama métodos al comportamiento que puede tener una clase. Dicho de otra forma, son cachos de código que se pueden ejecutar. Estos métodos son internos de la clase y, un método puede tener acceso al estado de su clase (a sus atributos).

 

Con la estructura de una clase  podemos crear objetos. ¡Es nuestro molde para crear objetos!

 

 

¿Y cómo creamos una clase?

 

La forma de crear una clase en Typescript es usando la palabra reservada “class”  de la siguiente forma:


class MiClase {
}

 

 

 

Bien, ya tenemos una clase creada. Y ahora…

¿Cómo creamos un objeto?

La forma de crear un nuevo objeto usando una clase, es utilizando la palabra reservada “new”, como se muestra en el siguiente código:

let miVariable = new MiClase();

 

Al objeto muchas veces se lo denomina instancia de la clase o instancia a secas,  es como usar las palabras objeto e instancia como sinónimos.

Instancia: Se llama instancia a todo objeto que deriva de una clase.

 

Un ejemplo práctico

Bueno, basta de teoría, vamos a poner un ejemplo un poco más práctico y divertido. Supongamos que queremos hacer un programa sobre los Avengers.  Lo que vamos a hacer es modelar los superhéroes Iron Man, Capitán América y Doctor Strange.

Si bien los tres personajes tienen diferentes habilidades y poderes, no cabe duda de que los tres son seres humanos. Así que podríamos crear una clase llamada «persona».


class Persona() {
}

 

Ahora bien, todas las personas tienen un nombre o un apodo, o una forma en la que son nombrados, así que podemos agregar el atributo «nombre» a esta clase «persona».


class Persona() {
    nombre:string;
}

 

Y bueno, en general una persona sabe decir su nombre, así que podemos agregar un método que sea “decir mi nombre”

 

Y a fines prácticos, vamos a imprimir en consola el nombre de la persona.


class Persona {
    nombre:string;
    decirMiNombre() {
       console.log(this.nombre);
    }
}

Ahora sólo falta una pequeña cosa para servir a nuestra clase, y es ver cómo inicializamos el atributo nombre.  Para eso, vamos a ver algo llamado constructor, que básicamente es algo que se ejecuta ni bien se crea un objeto o estancia.

 

La forma de crear un constructor dentro de una clase es usando la palabra clave constructor de la siguiente manera.

 

Nuestro código quedaría de la siguiente manera:


class Persona {
    nombre:string;
    constructor(nuevoNombre:string) {
       this.nombre=nuevoNombre;
    }

    decirMiNombre() {
       console.log(this.nombre);
    }
}

 

¿Y que pasa con «this»?

Como se puede apreciar, se usa la palabra reservada “this”  para acceder tanto a los atributos como a los métodos dentro de la clase. Algo de lo que no tenes qué preocuparte en Typescript, es que “this” usado dentro de una clase siempre apunta al objeto creado por esa clase.

 

 

Conclusión

 

La programación orientada a objetos es todo un mundo, tiene sus reglas y sus limitaciones que hay que aprender a dominar. Es toda una nueva forma de programar y estoy seguro de que una vez que la conozcas la vas a disfrutar tanto como yo.  Estáte atento a futuros post donde explicaré más conceptos de la programación orientada a objetos en Typescript. ¡Ánimo! y… ¡sigamos aprendiendo juntos!

About the Author

Mi nombre es Gustavo Hernán Dohara, soy Ingeniero en Sistemas y, sobre todas las cosas, soy un apasionado por la tecnología; tengo más de 10 años de experiencia en diferentes tecnologías y he decidido compartir mis conocimientos y experiencias con cualquiera que desee aprender: alumnos, empleados, freelancers y vos. Al ritmo que cada uno pueda, en el horario en que cada uno pueda y en el lugar que cada uno elija.