diff --git a/Clase8/exercises.js b/Clase8/exercises.js new file mode 100644 index 0000000..fc1be5b --- /dev/null +++ b/Clase8/exercises.js @@ -0,0 +1,94 @@ +//Escoge los tipos de datos de las siguientes variables: +let edad = 20; +let nombre = "Juanito"; +let producto1 = { + id: 20, + nombre: "Camiseta", + categorias: ["Primavera", "Verano"], + precio: 1202.23, //number +}; +//Crea la clase para esta instancia: +class Juguete { + set precio(_precio) { + this._precio = _precio; + } + get color() { + if (this._color) { + return this._color; + } + return ""; + } +} +let soldadito = new Juguete(); +soldadito.precio = 20; +console.log(soldadito.color); +class MiClase { + deletrear(palabra) { + return palabra.split(" "); + } + contar(palabra) { + return palabra.length; + } + imprimir(mensaje) { + return `${mensaje}`; + } +} +class LenguajeIngles { + constructor(caracteres) { + this.cantidadCaracteres = caracteres.length; + this.caracteres = caracteres; + } + printNCaracteres(n) { + for (let caracter in this.caracteres) { + console.log(caracter); + } + } +} +//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 longitudCadena(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 tipoDato(dato) { + if (typeof dato === 'string') { + console.log('Cadena de caracteres'); + } + else if (typeof dato === 'boolean') { + console.log('booleano'); + } + else { + console.log('Número'); + } +} +class Contenedor { + constructor() { + this.items = []; + } + guardar(objeto) { + this.items.push(objeto); + } + leer(i) { + if (i < this.items.length) { + return this.items[i]; + } + return "Error. Solo hay " + this.items.length + " items"; + } + imprimir() { + console.log("Items: "); + console.log(this.items); + } +} +let c = new Contenedor(); +c.guardar({ nombreJ: "Carrito", precioJ: 400 }); +c.guardar({ nombreJ: "Muñeca", precioJ: 200 }); +c.guardar({ talla: "M", tipo: "Playera", precioR: 150 }); +c.guardar({ talla: 7, tipo: "Pantalón", precioR: 250 }); +c.guardar({ nombreB: "Agua Bonafont", tipoB: "Agua", precioB: 23 }); +c.guardar({ nombreL: "El Principito", autor: "Antoine De Saint-Exupéry", precioL: 300 }); +console.log(c.leer(3)); +console.log(c.leer(7)); +c.imprimir(); diff --git a/Clase8/exercises.ts b/Clase8/exercises.ts index 9229792..6a37f5a 100644 --- a/Clase8/exercises.ts +++ b/Clase8/exercises.ts @@ -1,22 +1,46 @@ //Escoge los tipos de datos de las siguientes variables: -let edad = 20; +let edad = 20; let nombre = "Juanito"; -let producto = { - id: 20, - nombre: "Camiseta", - categorias: ["Primavera", "Verano"], - precio: 1202.23, + +interface Producto { + id: number; + nombre: string; + categorias: string[]; + precio: number; +} + +let producto1: Producto = { + id: 20, //number + nombre: "Camiseta", //string + categorias: ["Primavera", "Verano"], //string[] + precio: 1202.23, //number }; //Crea la clase para esta instancia: +class Juguete { + private _precio: number; + private _color: string; + + set precio(_precio: number){ + this._precio = _precio; + } + + get color(){ + if(this._color) { + return this._color; + } + return ""; + } +} + 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) => string | number; interface MisFuciones { deletrear: DefinicionDeletrear; @@ -39,6 +63,12 @@ class MiClase implements MisFuciones { } //Crea la interface correcta para esta clase, el constructor no está declarado en la interface +interface Lenguaje{ + cantidadCaracteres: T; + caracteres: U[]; + + printNCaracteres(n: T): void; +} class LenguajeIngles implements Lenguaje { cantidadCaracteres: number; @@ -58,11 +88,24 @@ 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 longitudCadena(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 tipoDato(dato: T){ + if(typeof dato === 'string'){ + console.log('Cadena de caracteres'); + } else if(typeof dato === 'boolean'){ + console.log('booleano'); + } else{ + console.log('Número'); + } +} //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 @@ -73,3 +116,58 @@ class LenguajeIngles implements Lenguaje { //La clase debe implementar generics class Contenedor{} //para instanciarla: new Contenedor(); //y probarla + +interface Juguetes { + nombreJ: string; + precioJ: number; +} + +interface Ropa { + talla: number | string; + tipo: string; + precioR: number; +} + +interface Botella { + nombreB: string; + tipoB: string; + precioB: number; +} + +interface Libro { + nombreL: string; + autor: string; + precioL: number; +} + +class Contenedor{ + items: T[] = []; + + guardar(objeto: T){ + this.items.push(objeto); + } + + leer(i: number){ + if(i < this.items.length){ + return this.items[i]; + } + return "Error. Solo hay "+this.items.length+" items"; + } + + imprimir(){ + console.log("Items: "); + console.log(this.items); + } +} + +let c = new Contenedor(); +c.guardar({nombreJ:"Carrito",precioJ: 400}); +c.guardar({nombreJ:"Muñeca", precioJ: 200}); +c.guardar({talla: "M", tipo:"Playera", precioR: 150}); +c.guardar({talla:7, tipo:"Pantalón", precioR: 250}); +c.guardar({nombreB:"Agua Bonafont", tipoB:"Agua", precioB: 23}); +c.guardar({nombreL:"El Principito", autor:"Antoine De Saint-Exupéry", precioL: 300}); + +console.log(c.leer(3)); +console.log(c.leer(7)); +c.imprimir();