2016-07-06 12 views
8

में अपरिभाषित d3.scale मैं टाइपस्क्रिप्ट (2 सप्ताह) के साथ नया हूं, और मैं d3.js ढांचे को लपेटने के लिए प्रोजेक्ट पर काम करता हूं। मुझे "d3.d.ts", नेमस्पेस, निर्यात मॉड्यूल, आयात के उपयोग के साथ एक समस्या आई है।टाइपस्क्रिप्ट

मेरे समस्या:

TypeError: d3.scale is undefined 

कोड:

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

मेरे संकलक विकल्प जब मैं d3.scale.linear() का उपयोग करने का प्रयास करें, मैं अपने ब्राउज़र कंसोल में त्रुटि है (मुझे संकलन प्रक्रिया पर कोई त्रुटि नहीं है, लेकिन शायद यह दिलचस्प है):

{ 
    "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 
    } 
} 

मैं विभिन्न आयात रणनीति का प्रयास करता हूं सफलता के बिना।

d3.d.ts

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

मैं समस्या समझ में नहीं आता, आपकी मदद के लिए धन्यवाद।

+0

प्रेसिजन:

d3.select(...)
काम ठीक –

+4

कोशिश 'd3.scaleLinear' बजाय' d3.scale.linear'of मैं तुम्हें d3 संस्करण 4 – Cyril

+0

काम है कि प्रयोग कर रहे हैं लगता है। धन्यवाद। –

उत्तर

2

मेरे पास एक समान प्रकार का मुद्दा था। मुझे डी 3 संस्करण से मेल खाना पड़ा, जिसने डी 3 के लिए निर्मित विधियों का समर्थन किया। या तो D3.js के संस्करण से मेल खाता है, सुनिश्चित करें कि आप अपने बॉवर को अपडेट करें। या अपने वर्तमान संस्करण के लिए निर्मित विधियों से मेल खाता है।

d3.scale.ordinal के लिए मेरा समर्थित संस्करण '3.5.17' है, पहले मैं नवीनतम संस्करण में था।

+0

की अनुपलब्ध है इसलिए मैं [email protected] का उपयोग कर रहा हूं, अब मुझे उसी संस्करण के लिए टाइपिंग की भी आवश्यकता है, लेकिन जब संस्करण 3.5.17 के लिए कोई टाइपिंग नहीं है, तो कौन सा संस्करण है आप पीछा करते हो –

26

d3.js के लिए संस्करण से सावधान रहें संस्करण 4.2.1 d3.scale.linear() में; निम्नलिखित त्रुटि देता है। TypeError: d3.scale.linear() स्केल अपरिभाषित

मैंने d3.scaleLinear() का उपयोग करके संस्करण 4.2.1 में यह त्रुटि ठीक की है;