typestar

Ampliación de módulos en TypeScript

Agregarle a los tipos de otro módulo desde tu propio código.

import type { IncomingMessage } from "node:http";

declare module "node:http" {
  interface IncomingMessage {
    requestId?: string;
    user?: { id: string; scopes: readonly string[] };
  }
}

declare module "node:querystring" {
  interface ParsedUrlQuery {
    typestarTrace?: string;
  }
}

export function tag(request: IncomingMessage, id: string): string {
  request.requestId = id;
  request.user = { id: "u-1", scopes: ["read"] as const };
  return `${request.requestId}:${request.user.scopes.length}`;
}

console.log(typeof tag);

Cómo funciona

  1. Reabrir el módulo fusiona tus declaraciones dentro de él.
  2. El archivo debe ser un módulo, o la declaración es global.
  3. Así tipa un plugin el campo que agrega.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
512
Tokens
117
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 64 segundos.

Escribe este fragmento

Paso 3 de 3 en Módulos y declaraciones; paso 7 de 8 en Async y módulos.

← Anterior Siguiente →