From 64404e50546df3278725fc7d8bd95ce32568f290 Mon Sep 17 00:00:00 2001 From: Eliot Date: Mon, 4 Oct 2021 20:18:51 -0500 Subject: [PATCH 1/2] Ejercicios clase 8 terminados. Nota: algunos estan comentados para no interferir con la definicion de otros ejercicios. --- Clase8/exercises.js | 121 +++++++++++++++++++++++++++++++++++ Clase8/exercises.ts | 152 ++++++++++++++++++++++++++++++++++++++++---- Clase8/index.html | 12 ++++ 3 files changed, 272 insertions(+), 13 deletions(-) create mode 100644 Clase8/exercises.js create mode 100644 Clase8/index.html diff --git a/Clase8/exercises.js b/Clase8/exercises.js new file mode 100644 index 0000000..4f85b2f --- /dev/null +++ b/Clase8/exercises.js @@ -0,0 +1,121 @@ +//Escoge los tipos de datos de las siguientes variables: +/* let edad: number = 20; +let nombre: string = "Juanito"; +declare interface Ropa { + id: number; + nombre: string; + categorias: string[]; + precio: number; +} + +let producto: Ropa = { + id: 20, + nombre: "Camiseta", + categorias: ["Primavera", "Verano"], + precio: 1202.23, +}; */ +var MiClase = /** @class */ (function () { + function MiClase() { + } + MiClase.prototype.deletrear = function (palabra) { + return palabra.split(" "); + }; + MiClase.prototype.contar = function (palabra) { + return palabra.length; + }; + MiClase.prototype.imprimir = function (mensaje) { + return "" + mensaje; + }; + return MiClase; +}()); +var LenguajeIngles = /** @class */ (function () { + function LenguajeIngles(caracteres) { + this.cantidadCaracteres = caracteres.length; + this.caracteres = caracteres; + } + LenguajeIngles.prototype.printNCaracteres = function (n) { + for (var caracter in this.caracteres) { + console.log(caracter); + } + }; + return LenguajeIngles; +}()); +//Crea UNA función que te permita obtener la longitud de una cadena de caracteres o +//de algún arreglo que se le pase, solo admite arreglos o strings,usando Generics +function getLenght(cadena) { + return cadena.length; +} +//Crea UNA función que reciba un dato de tipo boolean o string o number y +//dependiendo del tipo imprima en consola "booleano" "cadena de caracteres" o "número" +//Respectivamente, usando generics; +//Nota: typeof nos regresa el tipo de dato de una variable +function getTYpe(dato) { + switch (dato) { + case typeof (dato) === 'boolean': + console.log('booleano'); + break; + case typeof (dato) === 'string': + console.log('cadena'); + break; + case typeof (dato) === 'number': + console.log('numero'); + break; + } +} +var Contenedor = /** @class */ (function () { + function Contenedor() { + this.items = []; + } + /** + * Metodo Guardar + * @param item + */ + Contenedor.prototype.saveItem = function (item) { + this.items.push(item); + }; + /** + * Método Leer + * @param index + * @returns object T | void + */ + Contenedor.prototype.showItem = function (index) { + if (this.items.length >= index) { + return this.items[index - 1]; + } + else { + return { id: -1, nombre: 'Elemento no encontrado', color: 'error' }; + } + }; + /** + * Método Imprimir + */ + Contenedor.prototype.showItems = function () { + console.log('Contenido disponible'); + this.items.forEach(function (item, index) { + console.log("Elemento " + index + ": " + JSON.stringify(item)); + }); + }; + return Contenedor; +}()); +var container = new Contenedor(); +/**Guardar elementos */ +container.saveItem({ id: 0, nombre: 'Pelota', color: 'rojo' }); +container.saveItem({ id: 1, nombre: 'Pelota', color: 'verde' }); +container.saveItem({ id: 2, nombre: 'Trompo', color: 'azul' }); +container.saveItem({ id: 3, tipo: 'Camisa', color: 'rojo' }); +container.saveItem({ id: 4, tipo: 'Sudadera', color: 'verde' }); +container.saveItem({ id: 5, tipo: 'Pantalon', color: 'azul' }); +container.saveItem({ id: 6, nombre: 'El principito', tipoPasta: 'blanda' }); +container.saveItem({ id: 7, nombre: 'El psicoanalista', tipoPasta: 'gruesa' }); +container.saveItem({ id: 8, material: 'Vidrio' }); +container.saveItem({ id: 9, material: 'Plastico' }); +/**Elemeto 1 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(1))); +/**Elemeto 5 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(5))); +/**Elemeto 7 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(7))); +/**Elemeto 11 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(11))); +/**Imprimir lista de elementos */ +container.showItems(); diff --git a/Clase8/exercises.ts b/Clase8/exercises.ts index 9229792..7e67049 100644 --- a/Clase8/exercises.ts +++ b/Clase8/exercises.ts @@ -1,22 +1,45 @@ //Escoge los tipos de datos de las siguientes variables: -let edad = 20; -let nombre = "Juanito"; -let producto = { +/* let edad: number = 20; +let nombre: string = "Juanito"; +declare interface Ropa { + id: number; + nombre: string; + categorias: string[]; + precio: number; +} + +let producto: Ropa = { id: 20, nombre: "Camiseta", categorias: ["Primavera", "Verano"], precio: 1202.23, -}; +}; */ //Crea la clase para esta instancia: -let soldadito = new Juguete(); -soldadito.precio = 20; -console.log(soldadito.color); + /* class Juguete { + private _precio: number; + private _color: string; + + constructor() { + this._precio = 0; + this._color = ''; + } + set precio(precio: number) { + this._precio = precio; + } + + get color() { + return this._color; + } + } + let soldadito = new Juguete(); + soldadito.precio = 20; + console.log(soldadito.color); */ //Crea las definiciones de las siguientes funciones: -type DefinicionDeletrear = ; -type DefinicionContar = ; -type DefinicionImprimir = ; +type DefinicionDeletrear = (palabra:string) => string[]; +type DefinicionContar = (palabra:string) => number; +type DefinicionImprimir = (mensaje:string | number) => number | string; interface MisFuciones { deletrear: DefinicionDeletrear; @@ -39,7 +62,11 @@ class MiClase implements MisFuciones { } //Crea la interface correcta para esta clase, el constructor no está declarado en la interface - +declare interface Lenguaje { + cantidadCaracteres: T; + caracteres: U[]; + printNCaracteres: (n: T) => void +} class LenguajeIngles implements Lenguaje { cantidadCaracteres: number; caracteres: string[]; @@ -58,12 +85,26 @@ class LenguajeIngles implements Lenguaje { //Crea UNA función que te permita obtener la longitud de una cadena de caracteres o //de algún arreglo que se le pase, solo admite arreglos o strings,usando Generics - +function getLenght>(cadena: T) { + return cadena.length +} //Crea UNA función que reciba un dato de tipo boolean o string o number y //dependiendo del tipo imprima en consola "booleano" "cadena de caracteres" o "número" //Respectivamente, usando generics; //Nota: typeof nos regresa el tipo de dato de una variable - +function getTYpe(dato: T) { + switch(dato) { + case typeof(dato) === 'boolean' : + console.log('booleano'); + break; + case typeof(dato) === 'string' : + console.log('cadena'); + break; + case typeof(dato) === 'number' : + console.log('numero'); + break; + } +} //Crear una clase Contenedor, que te permita: guardar, leer e imprimir todos sus items //esta clase debe trabajar con un arreglo de items, estos items pueden ser de las siguientes //interfaces: Juguete, Ropa, Botella o Libro @@ -73,3 +114,88 @@ class LenguajeIngles implements Lenguaje { //La clase debe implementar generics class Contenedor{} //para instanciarla: new Contenedor(); //y probarla +declare interface Juguete { + id: number; + nombre: string; + color: string; +} + +declare interface Ropa { + id: number; + tipo: string; + color: string; +} + +declare interface Libro { + id: number; + nombre: string; + tipoPasta: string; +} + +declare interface Botella { + id: number; + material: string; +} + +class Contenedor { + private items: Array; + + constructor() { + this.items = []; + } + + /** + * Metodo Guardar + * @param item + */ + public saveItem(item: T): void { + this.items.push(item); + } + + /** + * Método Leer + * @param index + * @returns object T | void + */ + public showItem(index: number): T { + if (this.items.length >= index) { + return this.items[index - 1]; + } + else { + return {id: -1, nombre: 'Elemento no encontrado', color: 'error'} as T; + } + } + + /** + * Método Imprimir + */ + public showItems(): void { + console.log('Contenido disponible'); + this.items.forEach( (item: T, index) => { + console.log(`Elemento ${index}: ${JSON.stringify(item)}`); + }); + } +} + +const container = new Contenedor(); +/**Guardar elementos */ +container.saveItem({id: 0, nombre: 'Pelota', color: 'rojo'} as Juguete); +container.saveItem({id: 1, nombre: 'Pelota', color: 'verde'} as Juguete); +container.saveItem({id: 2, nombre: 'Trompo', color: 'azul'} as Juguete); +container.saveItem({id: 3, tipo: 'Camisa', color: 'rojo'} as Ropa); +container.saveItem({id: 4, tipo: 'Sudadera', color: 'verde'} as Ropa); +container.saveItem({id: 5, tipo: 'Pantalon', color: 'azul' } as Ropa); +container.saveItem({id: 6, nombre: 'El principito', tipoPasta: 'blanda'} as Libro); +container.saveItem({id: 7, nombre: 'El psicoanalista', tipoPasta: 'gruesa'} as Libro); +container.saveItem({id: 8, material: 'Vidrio'}); +container.saveItem({id: 9, material: 'Plastico'}); +/**Elemeto 1 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(1))); +/**Elemeto 5 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(5))); +/**Elemeto 7 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(7))); +/**Elemeto 11 solicitado */ +console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(11))); +/**Imprimir lista de elementos */ +container.showItems(); diff --git a/Clase8/index.html b/Clase8/index.html new file mode 100644 index 0000000..37ac47c --- /dev/null +++ b/Clase8/index.html @@ -0,0 +1,12 @@ + + + + + + + TypeScript + + + + + \ No newline at end of file From 9b4f611039607eea8d3410efcc41d2a3525a6b75 Mon Sep 17 00:00:00 2001 From: Eliot Date: Mon, 4 Oct 2021 20:27:35 -0500 Subject: [PATCH 2/2] Nombre: Cedillo Vazuez Eliot Uriel --- Clase8/exercises.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Clase8/exercises.ts b/Clase8/exercises.ts index 7e67049..8a3aa78 100644 --- a/Clase8/exercises.ts +++ b/Clase8/exercises.ts @@ -199,3 +199,4 @@ console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(7))); console.log('Elemento obtenido: ' + JSON.stringify(container.showItem(11))); /**Imprimir lista de elementos */ container.showItems(); +/** Cedillo Vázquez Eiot Uriel */