Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve warnings from typings #9363

Merged
merged 1 commit into from Jul 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions types/adapters.d.ts
Expand Up @@ -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<DateAdapter>): void;
readonly options: any;
readonly options: unknown;

/**
* Returns a map of time formats for the supported formatting units defined
Expand All @@ -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
Expand Down
21 changes: 4 additions & 17 deletions types/element.d.ts
@@ -1,30 +1,17 @@
import { AnyObject } from './basic';
import { Point } from './geometric';

export interface Element<T = {}, O = {}> {
export interface Element<T = AnyObject, O = AnyObject> {
readonly x: number;
readonly y: number;
readonly active: boolean;
readonly options: O;

tooltipPosition(useFinalPosition?: boolean): Point;
hasValue(): boolean;
getProps<P extends keyof T>(props: [P], final?: boolean): Pick<T, P>;
getProps<P extends keyof T, P2 extends keyof T>(props: [P, P2], final?: boolean): Pick<T, P | P2>;
getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T>(
props: [P, P2, P3],
final?: boolean
): Pick<T, P | P2 | P3>;
getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T>(
props: [P, P2, P3, P4],
final?: boolean
): Pick<T, P | P2 | P3 | P4>;
getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T>(
props: [P, P2, P3, P4, P5],
final?: boolean
): Pick<T, P | P2 | P3 | P4 | P5>;
getProps(props: (keyof T)[], final?: boolean): T;
getProps<P extends (keyof T)[]>(props: P, final?: boolean): Pick<T, P[number]>;
}
export const Element: {
prototype: Element;
new <T = {}, O = {}>(): Element<T, O>;
new <T = AnyObject, O = AnyObject>(): Element<T, O>;
};
14 changes: 7 additions & 7 deletions 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;
Expand All @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion types/helpers/helpers.extras.d.ts
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion 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;
Expand Down
6 changes: 4 additions & 2 deletions types/index.esm.d.ts
Expand Up @@ -1156,7 +1156,7 @@ export interface CoreScaleOptions {
afterUpdate(axis: Scale): void;
}

export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends Element<{}, O>, LayoutItem {
export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends Element<unknown, O>, LayoutItem {
readonly id: string;
readonly type: string;
readonly ctx: CanvasRenderingContext2D;
Expand Down Expand Up @@ -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 {
/**
Expand Down
6 changes: 4 additions & 2 deletions 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 <piotrek.witek@gmail.com> (http://piotrwitek.github.io)
Expand All @@ -9,10 +10,11 @@ export type DeepPartial<T> = T extends Function
: T extends object
? _DeepPartialObject<T>
: T | undefined;
type _DeepPartialArray<T> = Array<DeepPartial<T>>

type _DeepPartialArray<T> = Array<DeepPartial<T>>
type _DeepPartialObject<T> = { [P in keyof T]?: DeepPartial<T[P]> };

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;
export type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;