使用ES6或TypeScript导入多个“导出”的更好方法

时间:2017-10-04 05:34:24

标签: javascript typescript

我正在使用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命名空间?

1 个答案:

答案 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