Add a convenience alias for scale options (#8732)

* Add a convenience alias for scale options

Closes #8731

* Add an automated test

* Use parameter for a more realistic test
This commit is contained in:
Josh Kelley 2021-03-26 16:20:59 -04:00 committed by GitHub
parent 21aaa35610
commit 54c5b7a084
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

View File

@ -3248,6 +3248,9 @@ export type ScaleOptionsByType<TScale extends ScaleType = ScaleType> =
{ [key in ScaleType]: { type: key } & ScaleTypeRegistry[key]['options'] }[TScale]
;
// Convenience alias for creating and manipulating scale options in user code
export type ScaleOptions<TScale extends ScaleType = ScaleType> = DeepPartial<ScaleOptionsByType<TScale>>;
export type DatasetChartOptions<TType extends ChartType = ChartType> = {
[key in TType]: {
datasets: ChartTypeRegistry[key]['datasetOptions'];

View File

@ -1,4 +1,4 @@
import { Chart } from '../../index.esm';
import { Chart, ScaleOptions } from '../../index.esm';
const chart = new Chart('test', {
type: 'bar',
@ -30,3 +30,29 @@ const chart = new Chart('test', {
}
}
});
function makeChartScale(range: number): ScaleOptions<'linear'> {
return {
type: 'linear',
min: 0,
suggestedMax: range,
};
}
const composedChart = new Chart('test2', {
type: 'bar',
data: {
labels: ['a'],
datasets: [{
data: [1],
}, {
type: 'line',
data: [{ x: 1, y: 1 }]
}]
},
options: {
scales: {
x: makeChartScale(10)
}
}
});