Also verwende ich d3
und d3-hexbin
als globale Bibliotheken:
... und referenziere sie in .ts
as:
... mit DefinitelyTyped Definitionen. Aber obwohl das funktioniert:
%Vor%... das:
%Vor%... scheitert mit a:
%Vor%Gedanken?
Auch wenn Sie typen für d3 haben, haben Sie nicht die abgeleiteten Typisierungen für d3-hexbin. Sie müssen also auf die declare
-Methode zurückgreifen, wie ich sie hier für d3-cloud gemacht habe: Typings for d3-Wolke
Im Grunde genommen müssen Sie folgende Schritte ausführen:
import
die d3-Bibliothek wie üblich, aber geben Sie ihr einen Alias: import * as D3 from 'd3';
(Hinweis: Capital D für D3)
declare
d3 wieder, so dass Sie es für hexbin verwenden können: declare let d3: any;
Verwenden Sie D3
für alles, was die Eltern-d3-Bibliothek betrifft, und d3
für die Hexbin-Generation allein.
const svg = D3.select('#hitmap').append('svg');
const hexbin = d3.hexbin().radius(binsize + 1);
Dies verhindert, dass der Editor Hexbin-spezifische Vorschläge anzeigt, und Typescript kann Hexbin-spezifische Typfehler nicht abfangen. Aber leider, bis offizielle Typings für Hexbin ankommen, ist dies der beste Weg, den ich gefunden habe.
Tags und Links javascript typescript d3.js