Saltar al contenido principal
Curso/Modulos y Namespaces/Declaraciones Ambient (d.ts)
Volver a Modulos y Namespaces

Módulos y Namespaces — Leccion 3

·15 min

Declaraciones Ambient (d.ts)

Declara tipos para codigo JavaScript externo.

Ambient Declarations

Los archivos .d.ts permiten declarar tipos para codigo que no tiene typings.

typescript
// global.d.ts
declare const API_URL: string;
declare function gtag(...args: any[]): void;
declare module "libreria-sin-tipos" {
  export function hacerAlgo(x: number): string;
}

Declarando módulos

typescript
// para una libreria sin tipos
declare module "mi-libreria" {
  export function init(config: object): void;
  export class Cliente {
    constructor(url: string);
    get(ruta: string): Promise<any>;
  }
}

// Uso
import { Cliente } from "mi-libreria";
const cliente = new Cliente("https://api.com");

Declarando globals

typescript
// env.d.ts
declare namespace NodeJS {
  interface ProcessEnv {
    NODE_ENV: "development" | "production";
    API_URL: string;
    DATABASE_URL: string;
  }
}

// Uso
console.log(process.env.API_URL); // string, no undefined

Triple slash directives

typescript
/// <reference types="node" />
/// <reference path="./global.d.ts" />

Tipos para window

typescript
declare global {
  interface Window {
    analytics: {
      track(event: string, data?: object): void;
    };
  }
}

// Uso
window.analytics.track("click");

Ejercicio pratico

Declara un tipo para la función 'fetch' que retorna Promise<any>.

exercise.ts
Loading...
Resultado

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

Curso de TypeScript — Aprende desde cero