¿Cómo llamar a las bibliotecas JavaScript desde el proyecto de TypeScript?

Estoy trabajando en un proyecto TypeScript AngularJS existente. Ahora me gustaría usar d3js, pero para hacerlo necesito download manualmente el d3js typescript (resulta que d3 está compuesto por un millón de files) y luego el d3js min javascript. El proxy corporativo no me permite usar herramientas para download / administrar dependencies, etc. por lo que solo tengo la opción manual.

Por lo tanto, prefiero simplemente importar el d3js en index.html e invocar d3js directamente desde TypeScript sin usar la versión d3 ts.

Entonces lo hago, por ejemplo

 var svg = d3.select("svg"), margin = {top: 20, right: 20, bottom: 30, left: 40}, width = +svg.attr("width") - margin.left - margin.right, height = +svg.attr("height") - margin.top - margin.bottom, g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")"); var x = d3.scaleBand() .rangeRound([0, width]) .paddingInner(0.05) .align(0.1); 

pero luego obtengo los compiler errors "No se puede encontrar el nombre d3 " ¿hay alguna manera de decir en TypeScript que este object JavaScript está definido en otra parte y no debe suponer nada al respecto?

Es una pena que d3 js se divida en un millón de piezas … Me parece que no es muy útil, ¿quién usará la scale d3 sin select ? Esto no tiene ningún sentido para mí.

El file de definición solo es necesario para comstackr el origen de ts en js, no es necesario para ejecutar el js.

Será el más fácil de usar con @types :

 npm install --save @types/d3 

Si no puede hacer eso, descargue el file de definición manualmente y colóquelo cerca de su fuente y luego hágalo referencerlo:

 /// <reference path="PATH_TO_D3_D_TS" /> 

Si no puedes hacer eso también, declara:

 declare const d3: any; 

Esto le dirá al comstackdor que la variable d3 existe, y es de tipo any , por lo que no debería get excepciones para usarla.