使用Typescript 2 @Types与typescript 1.8.10

时间:2016-09-06 08:53:55

标签: javascript d3.js typescript typescript-typings

目前我正在尝试在我的项目中使用d3-drag v4类型。 他们正在使用Ts 1.8.10而没有准备好转向TS2测试版。

d3-v4打字库位于: https://github.com/tomwanzek/d3-v4-definitelytyped

我尝试使用以下方式安装打字:

typings install d3-drag=github:tomwanzek/d3-v4-definitelytyped/src/d3-drag/index.d.ts#4d09073c046b6444859c66ff441f1e7691777d0f --save

但我收到以下错误:

  

打字ERR!引起的   /tomwanzek/d3-v4-definitelytyped/47eae6d/src/d3-selection.d.ts   回复404,预计它等于200

我发现有人在这里问同样的问题:

https://github.com/tomwanzek/d3-v4-definitelytyped/issues/93

但它没有回答我的问题,因为我还不能迁移到ts2。 无论如何使用@types与TS 1.8.10?

3 个答案:

答案 0 :(得分:0)

同时我创建了一个d.ts文件以便能够使用拖动。  没有intellisense和没有类型检查,但至少我可以使用拖动库。

 declare var d3Drag;
 declare module 'd3-drag' 
{ 
export = d3Drag;
 }

我在我的代码中使用它:

import * as d3Drag from 'd3-drag';

...
let dragBehaivor = d3Drag.drag().on("start", dragStartFunction);

答案 1 :(得分:0)

您可以使用

获取必要的文件
npm install @types/d3-selection --save

这会将定义文件夹放在node_modules / @ types中。然后,您应该能够将d3-selection文件夹复制到typings文件夹,并在那里添加对index.d.ts文件的引用。我没有尝试过,因为我正在转向TS2,但它似乎应该可以工作。

答案 2 :(得分:0)

简短的回答是遗憾的是,不能将@types用于TypeScript 1.8.x的D3。有两个原因:

  1. TS2编译器执行的使用npm @types安装的定义的整个定义/模块分辨率在TS 1.8.x中不可用
  2. 您引用的https://github.com/tomwanzek/d3-v4-definitelytyped定义现已迁移到DefinitelyTyped / types-2.0分支。它们是为@types/d3(标准D3 v4 Bundle),@types/d3-selection@types/d3-drag等提供@types的人。所有这些都是在定义模块结构中编写的,仅支持TS 2。它们还使用其他TS功能,例如函数上下文的this类型。
  3. 由于这两个原因,它们不适用于TS 1.8。

    希望您自最初发布以来已经能够升级,因为TS 2不再是测试版。