diff --git a/src/internals/core/Core2.ts b/src/internals/core/Core2.ts index 3493ff6..ab7dec5 100644 --- a/src/internals/core/Core2.ts +++ b/src/internals/core/Core2.ts @@ -7,7 +7,7 @@ import * as StringImpl from "../strings/impl/strings"; * Core */ -export interface Fn { +export interface Fn { inputTypes: input; outputType: output; args: unknown; @@ -15,9 +15,9 @@ export interface Fn { } type Drop< - xs extends readonly any[], + xs extends readonly unknown[], n extends number, - dropped extends readonly any[] = [] + dropped extends readonly unknown[] = [] > = n extends dropped["length"] ? xs : xs extends readonly [infer first, ...infer tail] @@ -25,9 +25,9 @@ type Drop< : []; type ExcludePlaceholdersFromInputTypes< - inputTypes extends any[], - partialArgs extends any[], - result extends any[] = [] + inputTypes extends unknown[], + partialArgs extends unknown[], + result extends unknown[] = [] > = [inputTypes, partialArgs] extends [ [infer fInput, ...infer rInput], [infer fPartial, ...infer rPartial] @@ -39,10 +39,10 @@ type ExcludePlaceholdersFromInputTypes< > : [...result, ...inputTypes]; -interface Ap extends Fn { +interface Ap extends Fn { name: "Ap"; - argsArray: Extract; + argsArray: Extract; allArgs: [...partialArgs, ...this["argsArray"]]; expectedArgsCount: fn["inputTypes"]["length"]; @@ -64,11 +64,11 @@ interface Ap extends Fn { : Ap; } -export type Apply = (fn & { +export type Apply = (fn & { args: args; })["return"]; -type AnyAp = Ap; +type AnyAp = Ap; export type $< fn extends Fn, @@ -83,19 +83,19 @@ export type $< type Args = fn["args"]; type Arg0 = Extract< - Extract[0], + Extract[0], fn["inputTypes"][0] >; type Arg1 = Extract< - Extract[1], + Extract[1], fn["inputTypes"][1] >; type Arg2 = Extract< - Extract[2], + Extract[2], fn["inputTypes"][2] >; type Arg3 = Extract< - Extract[3], + Extract[3], fn["inputTypes"][3] >; @@ -163,7 +163,7 @@ type d = $; * Higher order */ -interface Map extends Fn<[Fn<[A], B>, A[]], B[]> { +interface Map extends Fn<[Fn<[A], B>, A[]], B[]> { return: Args extends [infer fn extends Fn, infer tuple] ? { [key in keyof tuple]: $ } : never; @@ -187,7 +187,8 @@ type ReduceImpl = xs extends [ ? ReduceImpl, rest> : acc; -interface Reduce extends Fn<[Fn<[B, A], B>, B, A[]], B> { +interface Reduce + extends Fn<[Fn<[B, A], B>, B, A[]], B> { return: Args extends [infer fn extends Fn, infer acc, infer tuple] ? ReduceImpl : never; @@ -230,7 +231,7 @@ interface Prepend extends Fn<[string, string], string> { return: `${Arg0}${Arg1}`; } -interface ToArray extends Fn<[any], [any]> { +interface ToArray extends Fn<[unknown], [unknown]> { return: [Arg0]; }