2017-08-21 7 views
9

としてtypescriptですにおけるD3-hexbin':「はD3と 'グローバルライブラリ

/// <reference types="d3" /> 
/// <reference types="d3-hexbin" /> 

<script src="https://d3js.org/d3.v4.min.js"></script> 
<script src="https://d3js.org/d3-hexbin.v0.2.min.js"></script> 

...として.tsでそれらを参照します

... DefinitelyTypedの定義を使用してください。これは...

const svg = d3.select('#hitmap').append('svg') 

:しかし、これは動作しますが、

const hexbin = d3.hexbin().radius(binsize + 1) 

...はして失敗します。

Property 'hexbin' does not exist on type 
    'typeof "/Users/bytter/node_modules/@types/d3/index"' 

思考?

+0

関連:https://github.com/Microsoft/TypeScript/issues/7125 –

答えて

0

d3の入力があっても、d3-hexbinの派生型はありません。だから、私はD3-クラウドのためにここで行ったようにdeclare方法にフォールバックしてきました:基本的にTypings for d3-cloud

、あなたが従うことをしました手順は以下のとおりです。

  1. importいつものようにD3ライブラリーimport * as D3 from 'd3';:しかし、それをエイリアス与える(注意:D3のための資本D)を

  2. declareあなたはhexbinのためにそれを使用することができますので、再度、D3:declare let d3: any;

  3. 親d3ライブラリに関するすべての場合はD3、ヘックスビン生成のみの場合はd3を使用してください。

const svg = D3.select('#hitmap').append('svg');

const hexbin = d3.hexbin().radius(binsize + 1);

これは、特定の提案をhexbin示すからエディタを防ぐことができますし、活字体は、特定のタイプのエラーをhexbinキャッチすることができません。しかし、残念なことに、公式の入力がhexbinに達するまで、これが私が見つけた最良の方法です。

関連する問題