Acerca de “* .d.ts” en TypeScript

Tengo curiosidad acerca de *.d.ts como un novato de TypeScript. Y alguien me dijo que este tipo de archivo es algo así como “archivo principal” en C ++, pero solo para JS. Pero no puedo convertir un archivo JS puro a *.d.ts menos que cambie forzosamente el *.js a *.ts . Así que tengo tres archivos: un archivo JS, un archivo TS y un archivo *.d.ts .


  1. ¿Cuál es la relación entre ellos?

  2. ¿Cómo puedo usar el archivo *.d.ts ? ¿Significa que puedo eliminar el archivo *.ts permanentemente?

  3. Si es así, ¿cómo puede saber el archivo *.d.ts qué archivo JS se está mapeando a sí mismo?


¡Muchas gracias! Sería muy bueno si alguien puede darme un ejemplo.

El archivo “d.ts” se usa para proporcionar información de tipo typescript sobre una API escrita en JavaScript. La idea es que estés usando algo como jQuery o guión bajo, una biblioteca de JavaScript existente. Desea consumirlos de su código de mecanografía.

En lugar de volver a escribir jquery o guión bajo o lo que sea en typescript, puede escribir el archivo d.ts, que contiene solo las anotaciones de tipo. Luego, a partir de su código de tipo typescript, obtiene los beneficios typescripts de la comprobación del tipo estático mientras sigue utilizando una biblioteca JS pura.

d significa archivos de statement :

Cuando se comstack una secuencia de comandos de TypeScript, hay una opción para generar un archivo de statement (con la extensión .d.ts) que funciona como una interfaz para los componentes en el JavaScript comstackdo. En el proceso, el comstackdor elimina todos los cuerpos de funciones y métodos y conserva solo las firmas de los tipos que se exportan. El archivo de statement resultante se puede usar para describir los tipos de TypeScript virtual exportados de una biblioteca o módulo de JavaScript cuando un desarrollador de terceros lo consume de TypeScript.

El concepto de archivos de statement es análogo al concepto de archivo de encabezado encontrado en C / C ++.

 declare module arithmetics { add(left: number, right: number): number; subtract(left: number, right: number): number; multiply(left: number, right: number): number; divide(left: number, right: number): number; } 

Los archivos de statement de tipo se pueden escribir a mano para las bibliotecas JavaScript existentes, como se ha hecho para jQuery y Node.js.

Las grandes colecciones de archivos de statement para las populares bibliotecas de JavaScript están alojadas en GitHub en DefinitelyTyped y en el Registro de Typings . Se proporciona una utilidad de línea de comandos llamada typings para ayudar a buscar e instalar archivos de statement de los repositorys.

No pude comentar y agregar esto como respuesta. Tuvimos un poco de dolor tratando de mapear tipos existentes a una biblioteca de JavaScript.

Para asignar un archivo d.ts a su archivo javascript, debe darle al archivo d.ts el mismo nombre que el archivo javascript, guárdelos en la misma carpeta y señale el código que lo necesita al archivo d.ts.

por ejemplo: test.js y test.d.ts están en el testdir y luego lo importas así en un componente reactjsr:

 import * as Test from "./testdir/test"; 

El archivo d.ts se exportó como un espacio de nombres como este:

 export as namespace Test; export interface TestInterface1{} export class TestClass1{}