Búsqueda de sitios web

¿Por qué los proyectos puros de TypeScript incluyen definiciones .d.ts?


¿Por qué los proyectos de TypeScript incluyen definiciones .d.ts... parece contraproducente?

Si una biblioteca ya está desarrollada en TypeScript (como Angular2, digamos), y el transpilador de TS puede usar los archivos fuente .ts para IntelliSense, ¿por qué sigo viendo que en proyectos TS se incluyen archivos .d.ts?

Ahora seguro que puedes generar fácilmente la definición .d.ts a través del ejecutable tsd, pero no puedo ver la lógica.

saludos,

Sean

Respuesta #1

Se reduce a la distribución. Referenciar un proyecto a través de npm/bower proporciona un archivo "main" que es JavaScript, no TypeScript. Como tal, tiene más sentido que la salida de compilación de un proyecto TypeScript sea:

a) El archivo de JavaScript transpilado, posiblemente minificado

b) Un archivo .d.ts que describe las anotaciones de tipo (algo así como un archivo de encabezado en C)

No tendría mucho sentido distribuirlo en TypeScript ya que, o impediría que los proyectos de JavaScript lo usaran, o necesitaría una versión separada en TypeScript del paquete npm.