Funciones en TypeScript

Author
By Darío Rivera
Posted on 2022-09-01 in TypeScript

Gracias a TypeScript, es posible recibir y retornar variables con tipo en las funciones. Ya vimos en un anterior artículo cómo definir variables en TypeScript. En este post, vamos a ir un poco más allá y ver su uso en funciones.

Número de argumentos

En primer lugar y antes de entrar de lleno con los tipos, veamos que en TypeScript aún cuando no se defina un tipo para los parámetros y un valor de retono, habrá comprobación del número de argumentos pasados a una función.

function sum(a, b)
{
  return a + b;
}

sum(6);

El código anterior lanzará el siguiente error en el compilador por llamar a la funcion solo con un tipo cuando se requieren dos.

error TS2554: Expected 2 arguments, but got 1.

Argumentos de función

En TypeScript es posible declarar una función con el tipo de sus parámetros. Observa el siguiente ejemplo en donde hemos definido un parámetro de tipo string.

function printName(userName: string)
{
    return 'Hello ' + userName;
}

Es posible incluso, definir en la signature de la función un parámetro más complejo como una estructura. En el siguiente ejemplo paámetro debe ser un objeto que tenga definidos los atributos name y age.

interface User {
    name: string,
    age: number
}

function printName(userName: User): string {
    return 'Hello ' + userName.name;
}

Valores de retorno

También es posible definir cuál tipo debe devolver una función en TypeScript.

function printName(userName: string): string
{
    return 'Hello ' + userName;
}

Es posible incluso, definir en la signature de la función un valor de retorno más complejo como una estructura. En el siguiente ejemplo el valor de retorno debe ser un objeto que tenga definidos los atributos saludo y userName.

function printName(userName: string): {
    saludo: string,
    userName: string
} {
    return {
        'saludo': 'Hello',
        'userName': userName
    };
}

Incluso, el valor de retorno podría ser una Interfaz (Puedes ver más sobre interfaces en Interfaces en TypeScript).

interface User {
    saludo: string,
    userName: string
}

function printName(userName: string): User {
    return {
        'saludo': 'Hello',
        'userName': userName
    };
}

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.