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
myLibtiene una funciónmakeGreetingpara crear saludos, y una propiedadnumberOfGreetingsque indica el número de saludos hechos hasta ahora.
Código
tslet 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.
tsdeclare 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
tslet x: Widget = getWidget(43);let arr: Widget[] = getWidget("all of them");
Declaración
tsdeclare 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
tsgreet({greeting: "hello world",duration: 4000});
Declaración
Usa una interface para definir un tipo con propiedades.
tsinterface 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 unastring, o una instancia deGreeter.
Código
tsfunction 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:
tstype GreetingLike = string | (() => string) | MyGreeter;declare function greet(g: GreetingLike): void;
Organizando Tipos
Documentación
El objeto
greeterpuede registrar en un archivo o mostrar una alerta. Puedes proporcionar LogOptions a.log(...)y opciones de alerta a.alert(...)
Código
tsconst g = new Greeter("Hello");g.log({ verbose: true });g.alert({ modal: false, title: "Current Greeting" });
Declaración
Usa namespaces para organizar tipos.
tsdeclare namespace GreetingLib {interface LogOptions {verbose?: boolean;}interface AlertOptions {modal: boolean;title?: string;color?: string;}}
Puedes también crear namespaces anidados en una declaración:
tsdeclare namespace GreetingLib.Options {// Referirse mediante GreetingLib.Options.Loginterface 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
tsconst 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.
tsdeclare class Greeter {constructor(greeting: string);greeting: string;showGreeting(): void;}
Variables Globales
Documentación
La variable global
foocontiene el número de widgets presentes.
Código
tsconsole.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
greetcon una cadena para mostrar un saludo al usuario.
Código
tsgreet("hello, world");
Declaración
Usa declare function para declarar funciones.
tsdeclare function greet(greeting: string): void;