Mis apuntes de desarrollo web </>

POO

Objetos

Como se pudo ver en el primer ejemplo de inferencia, los objetos en TypeScript, una vez que son definidas sus propiedades, son esas las únicas propiedades de dicho objeto y no se pueden llamar o crear nuevas propiedades posteriormente.

Type Alias

Los Type Alias son tipos de datos definidos por el usuario con nombres alternativos, esto sirve para darle más semántica al lenguaje.

Yo lo entiendo, en el caso de los objetos, como si fuera una especie de Clase.

ejemplo Type Alias

Optional Properties

ejemplo Optional Properties

ReadOnly

Esta palabra reservada, antes de cualquier propiedad, permite alterar su mutabilidad, convirtiendóla en una propiedad de solo lectura.

Template Types

ejemplo templete Types

Union Types

ejemplo Union Types

Intersection Types

ejemplo Intersection Types

Type indexing

ejemplo Type indexing

Type from value

ejemplo Type from value

Interfaces

Las interfaces son un mecanismo de la programación orientada a objetos que trata de suplir la carencia de herencia múltiple.

Las interfaces en TypeScript se declaran de manera bastante similar a la de las clases, indicando la lista de propiedades y métodos que contendrán. Solo hay un detalle fundamental, que las propiedades no pueden tener valores y los métodos no pueden tener código para su implementación.

Ejemplo interfaces

Interfaces anidadas

Las interfaces tambien pueden contener en si mismas otras interfaces:

Ejemplo interfaces anidadas

Extends

Las interfaces pueden heredar atributos y métodos de otras mediante extends:

Ejemplo extends

Declarar funciones en interfaces

Hay 2 maneras de declarar funciones en interfaces:

Ejemplo funciones en interfaces

Interfaces con propiedades opcionales:

Ejemplo Interfaces con propiedades opcionales

Interfaces para funciones:

Ejemplo Interfaces para funciones

Clases

La sintaxis básica de una clase puede ser:

ejemplo clases

Modificadores de acceso

Public:

Uso por defecto.

ReadOnly:

Un error muy comun es mutar la propiedad de un objeto ya definido:

ejemplo mutación objeto

Esto se puede solucionar con ReadOnly. Mediante readonly el valor de la propiedad solo puede ser cargado en el constructor o al momento de definirlo y luego no puede ser modificado ni desde un método de la clase o fuera de la clase.

ejemplo readonly

Private

Private hace que el acceso a la propiedad sea solo de forma interna.

ejemplo Private

Otra manera de usar private:

ejemplo Private

Protected:

Es similar a private, ya que evita el acceso de la propiedad a los objetos, pero lo permite en clases heredadas.

ejemplo protected

Clases e interfaces

ejemplo clases e interfaces

Encapsulamiento y Genéricos

Tanto para una clase o una interfaz que se requiera tipar, pero que su tipo de dato sea dinámico segun las condiciones de los objetos instanciados a partir de estas, sin tener que utlizar tipo Any, existen los Genéricos <>.

ejemplo Genéricos