diff --git a/types/adapters.d.ts b/types/adapters.d.ts index 65f48a180d0..120598a1654 100644 --- a/types/adapters.d.ts +++ b/types/adapters.d.ts @@ -3,7 +3,7 @@ export type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'w export interface DateAdapter { // Override one or multiple of the methods to adjust to the logic of the current date library. override(members: Partial): void; - readonly options: any; + readonly options: unknown; /** * Returns a map of time formats for the supported formatting units defined @@ -13,10 +13,10 @@ export interface DateAdapter { formats(): { [key: string]: string }; /** * Parses the given `value` and return the associated timestamp. - * @param {any} value - the value to parse (usually comes from the data) + * @param {unknown} value - the value to parse (usually comes from the data) * @param {string} [format] - the expected data format */ - parse(value: any, format?: TimeUnit): number | null; + parse(value: unknown, format?: TimeUnit): number | null; /** * Returns the formatted date in the specified `format` for a given `timestamp`. * @param {number} timestamp - the timestamp to format diff --git a/types/element.d.ts b/types/element.d.ts index 46ffa781e7d..09e330182c4 100644 --- a/types/element.d.ts +++ b/types/element.d.ts @@ -1,6 +1,7 @@ +import { AnyObject } from './basic'; import { Point } from './geometric'; -export interface Element { +export interface Element { readonly x: number; readonly y: number; readonly active: boolean; @@ -8,23 +9,9 @@ export interface Element { tooltipPosition(useFinalPosition?: boolean): Point; hasValue(): boolean; - getProps

(props: [P], final?: boolean): Pick; - getProps

(props: [P, P2], final?: boolean): Pick; - getProps

( - props: [P, P2, P3], - final?: boolean - ): Pick; - getProps

( - props: [P, P2, P3, P4], - final?: boolean - ): Pick; - getProps

( - props: [P, P2, P3, P4, P5], - final?: boolean - ): Pick; - getProps(props: (keyof T)[], final?: boolean): T; + getProps

(props: P, final?: boolean): Pick; } export const Element: { prototype: Element; - new (): Element; + new (): Element; }; diff --git a/types/helpers/helpers.color.d.ts b/types/helpers/helpers.color.d.ts index 1f6282e52f9..1e8c118e1e5 100644 --- a/types/helpers/helpers.color.d.ts +++ b/types/helpers/helpers.color.d.ts @@ -1,5 +1,12 @@ export function color(value: CanvasGradient): CanvasGradient; export function color(value: CanvasPattern): CanvasPattern; +export function color( + value: + | string + | { r: number; g: number; b: number; a: number } + | [number, number, number] + | [number, number, number, number] +): ColorModel; export interface ColorModel { rgbString(): string; @@ -20,13 +27,6 @@ export interface ColorModel { desaturate(ratio: number): ColorModel; rotate(deg: number): this; } -export function color( - value: - | string - | { r: number; g: number; b: number; a: number } - | [number, number, number] - | [number, number, number, number] -): ColorModel; export function getHoverColor(value: CanvasGradient): CanvasGradient; export function getHoverColor(value: CanvasPattern): CanvasPattern; diff --git a/types/helpers/helpers.extras.d.ts b/types/helpers/helpers.extras.d.ts index d3ddc784e62..a6b6594bd01 100644 --- a/types/helpers/helpers.extras.d.ts +++ b/types/helpers/helpers.extras.d.ts @@ -12,7 +12,7 @@ export function requestAnimFrame(cb: () => void): void; * @param {*} thisArg * @param {function} [updateFn] */ -export function throttled(fn: (...args: any[]) => void, thisArg: any, updateFn?: (...args: any[]) => any[]): (...args: any[]) => void; +export function throttled(fn: (...args: unknown[]) => void, thisArg: unknown, updateFn?: (...args: unknown[]) => unknown[]): (...args: unknown[]) => void; /** * Debounces calling `fn` for `delay` ms diff --git a/types/helpers/helpers.math.d.ts b/types/helpers/helpers.math.d.ts index 35cb6532832..90608702449 100644 --- a/types/helpers/helpers.math.d.ts +++ b/types/helpers/helpers.math.d.ts @@ -1,5 +1,5 @@ export function log10(x: number): number; -export function isNumber(v: any): boolean; +export function isNumber(v: unknown): boolean; export function almostEquals(x: number, y: number, epsilon: number): boolean; export function almostWhole(x: number, epsilon: number): number; export function sign(x: number): number; diff --git a/types/index.esm.d.ts b/types/index.esm.d.ts index d26a6339695..9eeaa83b236 100644 --- a/types/index.esm.d.ts +++ b/types/index.esm.d.ts @@ -1156,7 +1156,7 @@ export interface CoreScaleOptions { afterUpdate(axis: Scale): void; } -export interface Scale extends Element<{}, O>, LayoutItem { +export interface Scale extends Element, LayoutItem { readonly id: string; readonly type: string; readonly ctx: CanvasRenderingContext2D; @@ -1672,7 +1672,9 @@ export const ArcElement: ChartComponent & { new (cfg: AnyObject): ArcElement; }; -export interface LineProps {} +export interface LineProps { + points: Point[] +} export interface LineOptions extends CommonElementOptions { /** diff --git a/types/utils.d.ts b/types/utils.d.ts index 592aa63815b..f020c9ce37c 100644 --- a/types/utils.d.ts +++ b/types/utils.d.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/ban-types */ // DeepPartial implementation taken from the utility-types NPM package, which is // Copyright (c) 2016 Piotr Witek (http://piotrwitek.github.io) @@ -9,10 +10,11 @@ export type DeepPartial = T extends Function : T extends object ? _DeepPartialObject : T | undefined; - type _DeepPartialArray = Array> + +type _DeepPartialArray = Array> type _DeepPartialObject = { [P in keyof T]?: DeepPartial }; export type DistributiveArray = [T] extends [unknown] ? Array : never // From https://stackoverflow.com/a/50375286 -export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; +export type UnionToIntersection = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;