合并现有类型的类声明

问题描述 投票:0回答:1

我正在尝试使用qazxsw poi来扩展qazxsw poi中现有的Chart类型。想法是添加一个属性。

到目前为止我所做的是这个(file.d.ts):

Declaration Merging

工具提示来自自定义的.ts文件。

显然我做错了,因为使用这个新属性的代码无法编译:

TS2339属性'pluginTooltips'在Chart类型中不存在

类型定义文件的构造如下:

@types/chart.js

我想模块声明是错误的,但我找不到要使用的内容。

typescript chart.js
1个回答
0
投票

模块扩充的问题始终是找到您想要扩充的内容。在这种情况下,您可能认为您想要扩充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
© www.soinside.com 2019 - 2024. All rights reserved.