2016-07-06 45 views
8

Sono nuovo con Typescript (2 settimane) e lavoro sul progetto per racchiudere il framework d3.js. Ho riscontrato un problema con l'utilizzo di "d3.d.ts", spazio dei nomi, modulo di esportazione, importazione.undefined d3.scale in Typescript

Il mio problema: Quando provo ad usare il d3.scale.linear(), ho l'errore nel mio console del browser:

TypeError: d3.scale is undefined 

Il codice:

/// <reference path="../typings/d3.d.ts">; 
"use strict"; 
var linear = d3.scale.linear(); 
console.log("linear resolv !") 

mia opzione del compilatore (Non ho errori nel processo di compilazione, ma forse è interessante):

{ 
    "files": [ 
     "src/twod3/workspace.ts", 
     "src/twod3/component/basic.ts", 
     "src/twod3/component/data.ts", 
     "src/twod3/component/operation.ts", 
     "src/main.ts" 
    ], 
    "compilerOptions": { 
     "noImplicitAny": true, 
     "target": "es2015", 
     "module":"commonjs", 
     "sourceMap":true 
    } 
} 

Provo strategia di importazione diversa w senza successo.

I d3.d.ts

declare namespace d3 { 
... 
    export module scale { 
      ... 
      export function linear(): Linear<number, number>; 
      ... 
    } 
} 

Non capisco il problema, grazie per il vostro aiuto.

+0

precisione:

d3.select(...)
funzionano bene –

+4

provare '' d3.scaleLinear' invece d3.scale.linear'of credo che si sta utilizzando la versione 4 d3 – Cyril

+0

Questo è il lavoro. Grazie. –

risposta

2

Avevo un simile tipo di problema. Dovevo corrispondere alla versione D3, che supportava i metodi in built per d3. O corrisponde alla versione di D3.js, assicurati di aggiornare la tua pergola. Oppure corrispondono ai metodi integrati per la versione corrente.

La mia versione supportata per d3.scale.ordinal è '3.5.17', in precedenza ero all'ultima versione.

+0

Quindi sto usando la [email protected], ora ho anche bisogno di digitare per la stessa versione, ma quando non ci sono tipizzazioni per la versione 3.5.17, quale versione sono stai seguendo? –

26

Fare attenzione alla versione per d3.js Nella versione 4.2.1 d3.scale.linear(); dà il seguente errore. TipoErrore: scala d3.scale.linear() non definita

Ho corretto questo errore nella versione 4.2.1 utilizzando d3.scaleLinear();