我正在使用D3.js V4和模块,我想将几个模块导入到单个3`命名空间中。下面的代码片段是我目前的解决方案,有更好的方法吗?
const d3 = Object.assign(
{},
require('d3-axis'),
require('d3-selection'),
require('d3-format')
)
所以每当我需要任何东西时,我只需要调用下面的内容
d3.format('.5s')
// OR
d3.select(something)
有没有更好的方法将所有内容导入单个d3
命名空间?
答案 0 :(得分:2)
导入多个'导出'使用ES6或TypeScript
一种类型安全的方式
import * as d3Axis from 'd3-axis';
import * as d3Selection from 'd3-selection';
export const d3 = {...d3Axis, ...d3Selection};
尽管如此,d3
是在TypeScript之前编写的,并且在其API决策中不支持类型安全。
是的,您需要设计类型安全,例如如果您的库使用直接阵列访问,那么它本质上是不安全的https://basarat.gitbooks.io/typescript/docs/types/index-signatures.html