Referencia de Declaración

El propósito de esta guía es enseñarte cómo escribir un archivo de definición de alta calidad. Esta guía está estructurada mostrando documentación para alguna API, junto con el uso de ejemplo de esa API, y explicando cómo escribir la declaración correspondiente.

Estos ejemplos están ordenados aproximadamente en orden creciente de complejidad.

Objetos con Propiedades

Documentación

La variable global myLib tiene una función makeGreeting para crear saludos, y una propiedad numberOfGreetings que indica el número de saludos hechos hasta ahora.

Código

ts
let result = myLib.makeGreeting("hello, world");
console.log("The computed greeting is:" + result);
let count = myLib.numberOfGreetings;

Declaración

Usa declare namespace para describir tipos o valores accedidos mediante notación de puntos.

ts
declare namespace myLib {
function makeGreeting(s: string): string;
let numberOfGreetings: number;
}

Funciones Sobrecargadas

Documentación

La función getWidget acepta un número y devuelve un Widget, o acepta una cadena y devuelve un array de Widget.

Código

ts
let x: Widget = getWidget(43);
let arr: Widget[] = getWidget("all of them");

Declaración

ts
declare function getWidget(n: number): Widget;
declare function getWidget(s: string): Widget[];

Tipos Reutilizables (Interfaces)

Documentación

Al especificar un saludo, debes pasar un objeto GreetingSettings. Este objeto tiene las siguientes propiedades:

1 - greeting: Cadena obligatoria

2 - duration: Duración opcional (en milisegundos)

3 - color: Cadena opcional, ej. ‘#ff00ff’

Código

ts
greet({
greeting: "hello world",
duration: 4000
});

Declaración

Usa una interface para definir un tipo con propiedades.

ts
interface GreetingSettings {
greeting: string;
duration?: number;
color?: string;
}
declare function greet(setting: GreetingSettings): void;

Tipos Reutilizables (Alias de Tipo)

Documentación

En cualquier lugar donde se espere un saludo, puedes proporcionar una string, una función que devuelva una string, o una instancia de Greeter.

Código

ts
function getGreeting() {
return "howdy";
}
class MyGreeter extends Greeter {}
greet("hello");
greet(getGreeting);
greet(new MyGreeter());

Declaración

Puedes usar un alias de tipo para crear una abreviatura para un tipo:

ts
type GreetingLike = string | (() => string) | MyGreeter;
declare function greet(g: GreetingLike): void;

Organizando Tipos

Documentación

El objeto greeter puede registrar en un archivo o mostrar una alerta. Puedes proporcionar LogOptions a .log(...) y opciones de alerta a .alert(...)

Código

ts
const g = new Greeter("Hello");
g.log({ verbose: true });
g.alert({ modal: false, title: "Current Greeting" });

Declaración

Usa namespaces para organizar tipos.

ts
declare namespace GreetingLib {
interface LogOptions {
verbose?: boolean;
}
interface AlertOptions {
modal: boolean;
title?: string;
color?: string;
}
}

Puedes también crear namespaces anidados en una declaración:

ts
declare namespace GreetingLib.Options {
// Referirse mediante GreetingLib.Options.Log
interface Log {
verbose?: boolean;
}
interface Alert {
modal: boolean;
title?: string;
color?: string;
}
}

Clases

Documentación

Puedes crear un greeter instanciando el objeto Greeter, o crear un greeter personalizado extendiéndolo.

Código

ts
const myGreeter = new Greeter("hello, world");
myGreeter.greeting = "howdy";
myGreeter.showGreeting();
class SpecialGreeter extends Greeter {
constructor() {
super("Very special greetings");
}
}

Declaración

Usa declare class para describir una clase o un objeto similar a una clase. Las clases pueden tener propiedades y métodos, así como un constructor.

ts
declare class Greeter {
constructor(greeting: string);
greeting: string;
showGreeting(): void;
}

Variables Globales

Documentación

La variable global foo contiene el número de widgets presentes.

Código

ts
console.log("Half the number of widgets is " + foo / 2);

Declaración

Usa declare var para declarar variables. Si la variable es de solo lectura, puedes usar declare const. También puedes usar declare let si la variable tiene ámbito de bloque.

ts
/** El número de widgets presentes */
declare var foo: number;

Funciones Globales

Documentación

Puedes llamar a la función greet con una cadena para mostrar un saludo al usuario.

Código

ts
greet("hello, world");

Declaración

Usa declare function para declarar funciones.

ts
declare function greet(greeting: string): void;

The TypeScript docs are an open source project. Help us improve these pages by sending a Pull Request

Contributors to this page:
MHMohamed Hegazy  (57)
FKFabián Karaben  (6)
Yydz-one  (1)
PBPylyp Borysov  (1)
RKRafał Krupiński  (1)
7+

Last updated: 03 may 2025