typestar

Código async tipado en TypeScript

Tipos de retorno Promise y aserciones sobre las formas que llegan por fetch.

interface Repo {
  name: string;
  stars: number;
}

async function fetchRepos(user: string): Promise<Repo[]> {
  const response = await fetch(`/api/users/${user}/repos`);
  if (!response.ok) throw new Error(`status ${response.status}`);
  return (await response.json()) as Repo[];
}

async function total(user: string): Promise<number> {
  const repos = await fetchRepos(user);
  return repos.reduce((sum, repo) => sum + repo.stars, 0);
}

Cómo funciona

  1. Promise<Repo[]> tipa lo que la función resuelve.
  2. as Repo[] asevera la forma del JSON parseado.
  3. reduce conserva la seguridad de tipos sobre el arreglo tipado.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
425
Tokens
123
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 70 segundos.

Escribe este fragmento

Paso 1 de 2 en Tipos async; paso 1 de 8 en Async y módulos.

Siguiente →