导入整个模块时扩展模块

时间:2017-10-11 12:48:15

标签: typescript

我尝试使用打字稿中的新功能扩展d3库,但我遇到了弄清楚语法的问题。 d3作为导出的函数集合提供,这意味着您将其导入为

import * as d3 from 'd3';

我尝试过延伸它,因为我会静态

import * as d3 from 'd3';


function contextMenuFn() {
    console.log('hey, I'm a context menu!');
}

d3.contextMenu = contextMenuFn;

declare module 'd3' {
    namespace d3 {
        export let contextMenu: typeof contextMenuFn;
    }
}

但是,编译器拒绝,因为contextMenu在d3上不存在。这里的语法是什么?

更新:我也尝试了

import * as d3 from 'd3';

function contextMenuFn() {
    console.log('hey, context menu!');
}

d3.contextMenu = contextMenuFn;

declare module 'd3' {
    export let contextMenu: typeof contextMenuFn;
}

但报告"无法分配给' contextMenu'因为它是常数或只读属性"

0 个答案:

没有答案