"include": [
"./src/**/*.js",
"./types"
+ ],
+ "exclude": [
+ "./types/tests"
]
}
}
export type Overrides = {
- [key in ChartType]: DeepPartial<
+ [key in ChartType]:
CoreChartOptions<key> &
ElementChartOptions &
PluginChartOptions<key> &
DatasetChartOptions<ChartType> &
ScaleChartOptions<key> &
- ChartTypeRegistry[key]['chartOptions']
- >;
+ ChartTypeRegistry[key]['chartOptions'];
}
export const defaults: Defaults;
tooltip: TooltipOptions<TType>;
}
export interface PluginChartOptions<TType extends ChartType> {
- plugins: Partial<PluginOptionsByType<TType>>;
+ plugins: PluginOptionsByType<TType>;
}
export interface GridLineOptions {
export type ChartType = keyof ChartTypeRegistry;
-export type ScaleOptionsByType<TScale extends ScaleType = ScaleType> = DeepPartial<
+export type ScaleOptionsByType<TScale extends ScaleType = ScaleType> =
{ [key in ScaleType]: { type: key } & ScaleTypeRegistry[key]['options'] }[TScale]
->;
+;
export type DatasetChartOptions<TType extends ChartType = ChartType> = {
[key in TType]: {
--- /dev/null
+import { defaults } from '../../index.esm';
+
+// https://github.com/chartjs/Chart.js/issues/8711
+const original = defaults.plugins.legend.labels.generateLabels;
+
+defaults.plugins.legend.labels.generateLabels = function(chart) {
+ return [{
+ datasetIndex: 0,
+ text: 'test'
+ }];
+};
+
+// @ts-expect-error Type '{ text: string; }[]' is not assignable to type 'LegendItem[]'.
+defaults.plugins.legend.labels.generateLabels = function(chart) {
+ return [{
+ text: 'test'
+ }];
+};
--- /dev/null
+import { Chart } from '../../index.esm';
+
+const chart = new Chart('test', {
+ type: 'bar',
+ data: {
+ labels: ['a'],
+ datasets: [{
+ data: [1],
+ }, {
+ type: 'line',
+ data: [{ x: 1, y: 1 }]
+ }]
+ },
+ options: {
+ scales: {
+ x: {
+ type: 'time',
+ time: {
+ unit: 'year'
+ }
+ },
+ x1: {
+ // @ts-expect-error Type '"linear"' is not assignable to type '"timeseries" | undefined'.
+ type: 'linear',
+ time: {
+ // @ts-expect-error Type 'string' is not assignable to type 'false | "millisecond" | "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year" | undefined'.
+ unit: 'year'
+ }
+ }
+ }
+ }
+});
"target": "ES6",
"moduleResolution": "Node",
"alwaysStrict": true,
+ "strict": true,
"noEmit": true
},
"include": [
type _DeepPartialArray<T> = Array<DeepPartial<T>>
type _DeepPartialObject<T> = { [P in keyof T]?: DeepPartial<T[P]> };
-export type DistributiveArray<T> = T extends unknown ? T[] : never
+export type DistributiveArray<T> = [T] extends [unknown] ? Array<T> : never
// From https://stackoverflow.com/a/50375286
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;