Angular2/Typescript + D3v4 - 手动包括打字?

Tom*_*myF 7 d3.js typescript-typings d3v4 angular

我一直在尝试使用我的Angular2应用程序启动D3.
不过似乎有当前与新D3v4问题和可用的分型文件,即试图用新的方法,例如scaleLinear(),而不是不再scale.linear()会导致错误
Property 'scaleLinear' does not exist on type 'typeof d3'.
 

由于tomwanzek似乎已经在这个问题上并试图在https://github.com/tomwanzek/d3-v4-definitelytyped上创建新定义,我想知道是否有办法手动包含已有的打包文件我的angular2项目?

tom*_*zek 7

在参考Arlo的回答时,让我扩展一下简短的历史和当前的答案.我创建了repo https://github.com/tomwanzek/d3-v4-definitelytyped来开发新的D3版本4 TypeScript定义,当D3 v4尚未最终完成且TypeScript 2即将出现时.后者是一个主要因素,因为它改变了定义的编写方式并且可以获得,即@types.

随着对repo上列出的合作者的一些着名点头,我们最终确定了定义并将它们迁移到DefinitelyTyped.它们现在主动维护在DefinitelyTyped 的types-2.0分支中.这是发布到npm @types的分支.

您可能已经看到的一些混淆,与单个D3 v4模块定义(例如d3选择)已经存在npm install --save @types/d3-selection相当长一段时间的事实有关.然而,直到昨天获得的定义npm install --save @types/d3仍然拉低了旧的D3 v3.5.x定义.

截至目前,D3 v4标准软件包定义可从 npm install --save @types/d3(D3 v3.5的旧版本定义仍然可以通过获取3.5版本从@types中提取,如果需要)

至于使用导入的定义:

  • 不要分别从('d3'和'@ types/d3')安装和使用d3标准软件包,同时分别安装已包含在其中的D3模块,例如'd3-hierarchy'和'@ types/d3 -hierarchy".

至于Angular 2,是的,d3-ng2服务或类似的东西是一种方法.我确信它可以有所改进,它是与angular-cli一起开始快速原型制作的.


Arl*_*rlo 2

我不知道 Drawmoore 对 @types/d3v4 的建议,但@types/d3-MODULE可以工作,尽管如上所述这需要Typescript 2.0 。

为您使用的每个 d3 模块安装 @types 包,例如 axis 为:

npm install --save-dev @types/d3-axis
Run Code Online (Sandbox Code Playgroud)

我认为这些来自:https://github.com/tomwanzek/d3-v4-definitelytyped 检查每个 D3 模块的状态/可用性:第 56 期

显然,npm @types 将在未来取代 types 和 tsd: 声明文件的未来