我正在尝试使用qazxsw poi来扩展qazxsw poi中现有的Chart类型。想法是添加一个属性。
到目前为止我所做的是这个(file.d.ts):
Declaration Merging
工具提示来自自定义的.ts文件。
显然我做错了,因为使用这个新属性的代码无法编译:
TS2339属性'pluginTooltips'在Chart类型中不存在
类型定义文件的构造如下:
@types/chart.js
我想模块声明是错误的,但我找不到要使用的内容。
模块扩充的问题始终是找到您想要扩充的内容。在这种情况下,您可能认为您想要扩充import * as Chart from 'chart.js';
import { Tooltip } from './tooltip';
declare module 'Chart' {
class Chart {
pluginTooltips?: Tooltip[];
}
}
模块,但是如果我们查看定义,我们会看到declare class Chart {...}
...
export = Chart;
export as namespace Chart;
这是UMD模块的导出,它实际上是将全局类导出为模块(chart.js
)。
因此该模块仅引用全球export as namespace Chart;
类,这是我们真正想要扩充的内容。
docs