我尝试使用打字稿中的新功能扩展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'因为它是常数或只读属性"