Saltar al contenido principal
Curso/Funciones/Tipos de Retorno
Volver a Funciones

Funciones — Leccion 2

·15 min

Tipos de Retorno

Define que tipo retorna tu función.

Tipado de retorno

TypeScript puede inferir el tipo de retorno, pero es buena práctica ser explicito.

typescript
// Inferido: number
function sumar(a: number, b: number) {
  return a + b;
}

// Explicito: number
function sumar(a: number, b: number): number {
  return a + b;
}

Retorno void

Para funciones que no retornan nada.

typescript
function log(mensaje: string): void {
  console.log(mensaje);
}

function guardar(datos: { nombre: string }): void {
  localStorage.setItem("user", JSON.stringify(datos));
}

Retorno never

Para funciones que nunca terminan.

typescript
function lanzarError(msg: string): never {
  throw new Error(msg);
}

function loopInfinito(): never {
  while (true) {}
}

Retorno Promise

typescript
async function buscarUsuario(id: number): Promise<string> {
  const response = await fetch(`/api/users/${id}`);
  return response.json();
}

Retorno tuples

typescript
function divide(a: number, b: number): [number, boolean] {
  if (b === 0) return [0, false];
  return [a / b, true];
}

const [resultado, exito] = divide(10, 2);

Por qué ser explicito?

typescript
// Sin retorno explicito, TypeScript puede equivocarse
function calcular(a: number, b: number) {
  if (b === 0) return "Error"; // TypeScript piensa qué es number | string
  return a / b;
}

// Con retorno explicito, el error se detecta antes
function calcular(a: number, b: number): number {
  // if (b === 0) return "Error"; // Error de tipos!
  return a / b;
}

Ejercicio pratico

Crea una función que retorne un array con [resultado, exito] al dividir dos numeros.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero