Modify Scale typing (#8681)

This commit is contained in:
Jukka Kurkela 2021-03-21 16:20:05 +02:00 committed by GitHub
parent 375d856a87
commit 537064be9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 4 deletions

View File

@ -1260,10 +1260,9 @@ export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends El
isFullSize(): boolean;
}
export const Scale: {
prototype: Scale;
new <O extends CoreScaleOptions = CoreScaleOptions>(cfg: AnyObject): Scale<O>;
};
export declare class Scale {
constructor(cfg: {id: string, type: string, ctx: CanvasRenderingContext2D, chart: Chart});
}
export interface ScriptableScaleContext {
chart: Chart;

View File

@ -0,0 +1,48 @@
import { AnyObject } from '../../basic';
import { CartesianScaleOptions, Chart, Scale } from '../../index.esm';
export type TestScaleOptions = CartesianScaleOptions & {
testOption?: boolean
}
export class TestScale<O extends TestScaleOptions = TestScaleOptions> extends Scale<O> {
static id: 'test';
getBasePixel(): number {
return 0;
}
testMethod(): void {
//
}
}
declare module '../../index.esm' {
interface CartesianScaleTypeRegistry {
test: {
options: TestScaleOptions
}
}
}
Chart.register(TestScale);
const chart = new Chart('id', {
type: 'line',
data: {
datasets: []
},
options: {
scales: {
x: {
type: 'test',
position: 'bottom',
testOption: true,
min: 0
}
}
}
});
Chart.unregister([TestScale]);