En estos días luego cuando alguien me pregunto que son los tsd para que se usan y cual es su función con Typescript. he decidido explicarle de forma mas clara por esta vía.

Una de las ventajas de Typescript es que nos permite utilizar strong type en nuestro código javascript, Typescript soporta los typos primitivos o básicos de javascript object, string, number , boolean etc.

Pero en nuestro día a día utilizamos otras librerías como Jquery, Angular, Backbone o nuestros propios módulos, para Typescript poder darnos el soporte a nivel de autocompletado, strongtype, definición de los métodos.

Typescript necesita tener una definición de los tipos expuestos por las librerias o nuestras librerías y aquí aparecen los “Typescript Definitions Files”.

Type Script Definitions Files
Los Typescripts Definitions Files su extension es .d.ts describen los métodos, tipos y objects expuestos por las librerías externas.

Estos archivos son utilizados por el compilador de Typescript para el static type checking y por los ides (sublimetext, visual studio code) para facilitarnos el autocompleado, mostrarnos la definición de los miembros y métodos de las librerías que estamos utilizando.

Como consigo los d.ts las librerias que uso ?

DefinityType es una comunidad de Typescript que se encarga de definir la mayoria de las librerias javascript mas utilizadas, podemos ver en su repositorio https://github.com/borisyankov/DefinitelyTyped también a su vez nos facilitan tsd Typescript Definition Manager.

Typescript Definition Manager

Es un gestor de paquetes como Nuget o npm que se encarga de instalar los d.ts, buscar sus dependencias en los repositorios de DefinityType.

Para instalarlo, usaremos le gestor de paquetes de nodejs npm
y lo instalaremos de forma global y instalar las definiciones de nuestras librerías ejemplo angular.

npm install -g tsd
tsd install angular -r -s

Para mas información sobre el tsd puedes visitar el readme que explica todos los detalles del uso y sus opciones.

https://github.com/Definitelytyped/tsd#readme

Happy Typescripting!!!