Я пытаюсь установить scaleDefaults для chartjs. Я пользуюсь наборами из @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 и определение пространства имен с тем же именем:
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
}