用缺少的类型扩展charjs接口

时间:2018-07-03 08:47:51

标签: typescript chart.js typing

我正在尝试为chartjs设置scaleDefaults。我正在使用@types/chart.js v2.7.22中的类型。

Chart.scaleService.updateScaleDefaults('logarithmic', {
    ticks: {
        callback: function (tick: number, index: number, ticks: number[]) {
            // CODE
        }
    }

但是,这却带来了一个问题:Property 'scaleService' does not exist on type 'typeof Char'。如果我将此转换为any,则可以正常工作。

但是我不想将其强制转换为任何值,因此我想扩展chartjs接口,结果:

interface ChartExtended extends Chart { }

(Chart as ChartExtended).scaleService.updateScaleDefaults('logarithmic', {
    ticks: {
        callback: function (tick: number, index: number, ticks: number[]) {
            // CODE
        }
    }

但是我再次遇到类型错误:

Type 'typeof Chart' cannot be converted to type 'ChartExtended'.
Property 'config' is misisng in type 'typeof Chart'

当我检查index.d.ts时,我注意到有一个单独的类def和一个名称相同的名称空间def:

declare class Chart {
    static readonly Chart: typeof Chart;
    // Stuff
}

declare namespace Chart {
     // Stuff
}

export = Chart;
export as namespace Chart;

我想创建一个适当扩展图表的接口,以便我可以定义scaleService。

我希望定义如下接口:

interface ChartExtended extends Chart {
    scaleService?: ScaleService
}

0 个答案:

没有答案