From 895799b23e8224eb1b623ef1d0ffd508f101389f Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Fri, 22 Jul 2022 15:40:07 +0200 Subject: test: introduce seededTests factory (#838) --- src/utils/types.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/utils') diff --git a/src/utils/types.ts b/src/utils/types.ts index 65c87ebf..012ad58b 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -7,14 +7,22 @@ export type LiteralUnion = | T | (U & { zz_IGNORE_ME?: never }); +/** + * Basically a function that returns a value. + * + * For some strange reason this is not the same as `Function`. + */ +export type Callable = (...args) => unknown; + /** * Type that represents a single method/function name of the given type. */ -export type MethodOf< - ObjectType, - Signature extends (...args) => unknown = (...args) => unknown -> = { - [Key in keyof ObjectType]: ObjectType[Key] extends Signature ? Key : never; +export type MethodOf = { + [Key in keyof ObjectType]: ObjectType[Key] extends Signature + ? Key extends string + ? Key + : never + : never; }[keyof ObjectType]; /** @@ -22,5 +30,5 @@ export type MethodOf< */ export type MethodsOf< ObjectType, - Signature extends (...args) => unknown = (...args) => unknown + Signature extends Callable = Callable > = ReadonlyArray>; -- cgit v1.2.3