Volver a Modulos y Namespaces
Módulos y Namespaces — Leccion 3
·15 minDeclaraciones 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...