TypeScript parte 2: Arreglos, enumeraciones, tuplas y funciones

Esta es la parte 2 de una guía para aprender TypeScript desde cero en poco tiempo, aquí hablaremos un poco de como crear Arrays, crear una enumeración, entre otras.

Si no conoces TypeScript y necesitas entender como empezar de 0 puedes revisar Parte 1 de esta guía.

Arrays – Arreglos

Podemos crear arreglos para un tipo específico

let listOfNumber : number[];

listOfNumber = [0, 1, 5, 8, 10];

Podemos declarar un arreglo mediante generics (otra sintaxis).

let listOfNumberGeneric : Array<number> = [0, 1, 5, 8, 10];

let sumOfNumbers = listOfNumber.reduce((p,value)=> p+value);

console.log(`The sum is: ${sumOfNumbers}`);

Podemos crear un arreglo utilizando ‘any’ para admitir varios tipos dentro de los valores;

let listOfItems : any[];

listOfItems = [0, true, 'Name', 8, 'A text value'];

Enumeraciones

Podemos crear una enumeración para utilizar un tipo que contenga algunos valores específicos. Crear una enumeración como una constante es una buena práctica.

const enum dayOfWeek
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

El uso de la enumeración como tipo hace que el código sea más fácil de entender.

let currentDayOfWeek : dayOfWeek;

currentDayOfWeek = dayOfWeek.Saturday;

console.log(`The current day is: ${currentDayOfWeek} `);

Las enumeraciones son muy útiles para validar un valor en condiciones. Podemos identificar fácilmente lo que significa el valor:

if(currentDayOfWeek === dayOfWeek.Saturday || currentDayOfWeek == dayOfWeek.Sunday)
{
    console.log(`it's weekend!!!!`); 
}

Tuplas

Podemos declarar una nueva variable compuesta por 2 o más valores (esto es una tupla).

const fullName : [string, string] = ["Miguel", "Teheran"];

Podemos usar diferentes tipos en una tupla.

//product name, cost and quantity example:
const product : [string, number, number] = ["Tomato", 1, 50];

Podemos crear un arreglo o array de tuplas

var employee: [number, string][];

employee = [[1, "Steve"], [2, "Bill"], [3, "Jeff"]];

Podemos acceder a las propiedades de la tupla utilizando la posición

const fullName : [string, string] = ["Miguel", "Teheran"];

console.log(fullName[0]); //prints Miguel
console.log(fullName[1]); //prints Teheran

Funciones

Podemos especificar el tipo de un parámetro en una función

function  printDoubleNumber(number: number) : void
{
    console.log(number * 1);
} 

Podemos usarlo con una función como expresión

const printDoubleNumberExpression = function  printDoubleNumber(number: number) : void
{
    console.log(number * 1);
} 

También podemos utilizar la función tipo flecha con tipos también

const printDoubleNumberArrow = (number: number) : void =>
{
    console.log(number * 1);
} 

Podemos definir un tipo específico para devolver en una función

const plusNumbers = (number1: number, number2: number) : number =>
{
   return number1 + number2;
} 

TypeScript admite parámetros opcionales mediante el signo de interrogación

const concactStrings = (title: string, name?: string)  =>
{
  console.log(`${title} ${name}`);
} 

Podemos especificar un valor predeterminado para un parámetro estableciendo el valor en la definición

const calculateTax = (productPrice: number, taxPercentage: number = 0.16): number  =>
{
  return productPrice * taxPercentage;
} 

Uso del parámetro rest para recibir más parámetros con un tipo predeterminado

const setConfiguration = (IsActivated:boolean, ...options: Array<string>): void  =>
{
  console.log(`Configuration is activated ${IsActivated}`)
} 

Continua con la parte 3 de esta guía de TypeScript: Parte 3

Referencia: https://dev.to/mteheran/typescript-ultimate-guide-for-beginners-1dlo

Repositorio: https://github.com/Mteheran/TypeScriptGuide