2016-07-06 108 views
8

我是全新的Typescript(2周),我在項目上工作以包裝d3.js框架。 我遇到了使用「d3.d.ts」,名稱空間,導出模塊,導入的問題。undefined d3.scale Typescript

我的問題:當我嘗試使用d3.scale.linear(),我有錯誤在我的瀏覽器控制檯:

TypeError: d3.scale is undefined 

代碼:

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

我的編譯器選項(我在編譯過程中沒有錯誤,但也許它很有趣):

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

我嘗試不同的導入策略w沒有成功。

的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

我有一個類似的問題。我不得不匹配D3版本,它支持D3的內置方法。 要麼匹配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()scale is undefined

我使用d3.scaleLinear()修復了版本4.2.1中的此錯誤;