模块扩充的问题总是要精确地找到您想要扩充的内容。在这种情况下,您可能会认为您想增加
chart.js
但是如果我们看看我们看到的定义
export as namespace Chart;
这是一个UMD模块的导出,实际上是将一个全局类作为一个模块导出(
docs
).
所以模块只是引用全局
Chart
同学们,这才是我们真正想补充的。
import * as Chart from 'chart.js';
type Tooltip = {t: any}
declare global {
interface Chart {
pluginTooltips?: Tooltip[];
}
}
let c = new Chart(null!, null!);
c.pluginTooltips; // ok now