Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ejercicios clase8 #4

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions Clase8/exercises.js
Original file line number Diff line number Diff line change
@@ -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();
116 changes: 107 additions & 9 deletions Clase8/exercises.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<T,U>{
cantidadCaracteres: T;
caracteres: U[];

printNCaracteres(n: T): void;
}

class LenguajeIngles implements Lenguaje<number, string> {
cantidadCaracteres: number;
Expand All @@ -58,11 +88,24 @@ class LenguajeIngles implements Lenguaje<number, string> {

//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<T extends ([]|string)>(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<T extends boolean | number | string >(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
Expand All @@ -73,3 +116,58 @@ class LenguajeIngles implements Lenguaje<number, string> {
//La clase debe implementar generics class Contenedor<T>{}
//para instanciarla: new Contenedor<Juguete | Ropa | Botella | Libro>();
//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<T extends (Juguetes | Ropa | Botella | Libro)>{
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<Juguetes | Ropa | Botella | Libro>();
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();