Ej-1: Uso de Variables y Condicionales
Escribir un programa que determine si un número es par o impar.
// TypeScript
function esParOImpar(numero: number): string {
if (numero % 2 === 0) {
return `${numero} es par.`;
} else {
return `${numero} es impar.`;
}
}
let numero: number = 4;
console.log(esParOImpar(numero)); // 4 es par.
4 es par.
Ej-2: Uso de Arrays y Bucles
Escribir un programa que imprima los elementos de un array de números.
// TypeScript
let numeros: number[] = [1, 2, 3, 4, 5];
for (let i = 0; i < numeros.length; i++) {
console.log(numeros[i]);
}
1
2
3
4
5
Ej-3: Uso de Enumeraciones
Escribir un programa que defina una enumeración para los días de la semana y devuelva el nombre del día dado su número.
// TypeScript
enum Dia {
Lunes,
Martes,
Miercoles,
Jueves,
Viernes,
Sabado,
Domingo
}
function obtenerNombreDia(dia: Dia): string {
return Dia[dia];
}
let dia: Dia = Dia.Miercoles;
console.log(obtenerNombreDia(dia)); // Miercoles
Miercoles
Ej-4: Uso de Funciones
Escribir un programa que calcule el factorial de un número utilizando una función.
// TypeScript
function factorial(n: number): number {
if (n === 0 || n === 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
let numero: number = 5;
console.log(`El factorial de ${numero} es ${factorial(numero)}`); // El factorial de 5 es 120
El factorial de 5 es 120
Ej-5: Uso de Clases e Interfaces
Escribir un programa que defina una clase que implemente una interfaz para representar una persona y saludar.
// TypeScript
interface IPersona {
nombre: string;
edad: number;
saludar(): string;
}
class Persona implements IPersona {
constructor(public nombre: string, public edad: number) {}
saludar(): string {
return `Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años.`;
}
}
let persona: Persona = new Persona('Ana', 25);
console.log(persona.saludar()); // Hola, mi nombre es Ana y tengo 25 años.
Hola, mi nombre es Ana y tengo 25 años.
Ej-6: Suma de los Elementos de un Array
Escribir un programa que sume todos los elementos de un array de números.
// TypeScript
function sumaArray(numeros: number[]): number {
let suma: number = 0;
for (let numero of numeros) {
suma += numero;
}
return suma;
}
let numeros: number[] = [1, 2, 3, 4, 5];
console.log(`La suma es: ${sumaArray(numeros)}`); // La suma es: 15
La suma es: 15
Ej-7: Uso de Tuplas
Escribir un programa que defina una tupla para almacenar un nombre y una edad, y luego imprima estos valores.
// TypeScript
let persona: [string, number] = ['Juan', 30];
console.log(`Nombre: ${persona[0]}, Edad: ${persona[1]}`); // Nombre: Juan, Edad: 30
Nombre: Juan, Edad: 30
Ej-8: Uso de Genéricos
Escribir una función genérica que invierta un array.
// TypeScript
function invertirArray(array: T[]): T[] {
return array.reverse();
}
let numeros: number[] = [1, 2, 3, 4, 5];
console.log(invertirArray(numeros)); // [5, 4, 3, 2, 1]
[5, 4, 3, 2, 1]
Ej-9: Uso de Mapas
Escribir un programa que utilice un mapa para almacenar nombres y edades, y luego imprima estos valores.
// TypeScript
let mapa: Map = new Map([
['Juan', 30],
['Ana', 25],
['Luis', 40]
]);
mapa.forEach((valor, clave) => {
console.log(`Nombre: ${clave}, Edad: ${valor}`);
});
Nombre: Juan, Edad: 30
Nombre: Ana, Edad: 25
Nombre: Luis, Edad: 40
Ej-10: Uso de Promesas
Escribir un programa que utilice una promesa para simular una operación asincrónica y luego imprima el resultado.
// TypeScript
function operacionAsincronica(): Promise {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operación completada');
}, 2000);
});
}
operacionAsincronica().then(resultado => {
console.log(resultado); // Operación completada
});
Operación completada
Ej-11: Uso de Clases y Métodos Estáticos
Escribir una clase que contenga un método estático para sumar dos números.
// TypeScript
class Calculadora {
static sumar(a: number, b: number): number {
return a + b;
}
}
console.log(Calculadora.sumar(10, 5)); // 15
15
Ej-12: Uso de Módulos
Escribir un programa que utilice un módulo para organizar el código.
// mathUtils.ts
export function sumar(a: number, b: number): number {
return a + b;
}
// main.ts
import { sumar } from './mathUtils';
console.log(sumar(10, 5)); // 15
15
Ej-13: Uso de Clases con Herencia
Escribir una clase base Animal
y una clase derivada Perro
que herede de Animal
.
// TypeScript
class Animal {
constructor(public nombre: string) {}
hacerSonido(): void {
console.log('Sonido genérico');
}
}
class Perro extends Animal {
hacerSonido(): void {
console.log('Guau!');
}
}
let miPerro: Perro = new Perro('Firulais');
miPerro.hacerSonido(); // Guau!
Guau!
Ej-14: Uso de Interfaces y Herencia
Escribir una interfaz base IAnimal
y una interfaz derivada IPerro
que herede de IAnimal
.
// TypeScript
interface IAnimal {
nombre: string;
hacerSonido(): void;
}
interface IPerro extends IAnimal {
raza: string;
}
class Perro implements IPerro {
constructor(public nombre: string, public raza: string) {}
hacerSonido(): void {
console.log('Guau!');
}
}
let miPerro: Perro = new Perro('Firulais', 'Labrador');
miPerro.hacerSonido(); // Guau!
console.log(`Nombre: ${miPerro.nombre}, Raza: ${miPerro.raza}`); // Nombre: Firulais, Raza: Labrador
Guau!
Nombre: Firulais, Raza: Labrador
Ej-15: Uso de Uniones de Tipos
Escribir un programa que utilice una unión de tipos para definir una variable que pueda ser un número o una cadena.
// TypeScript
let valor: number | string;
valor = 42;
console.log(`Valor: ${valor}`); // Valor: 42
valor = 'Hola';
console.log(`Valor: ${valor}`); // Valor: Hola
Valor: 42
Valor: Hola