테스트
This commit is contained in:
Vendored
-18
@@ -1,18 +0,0 @@
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
|
||||
type C = (...args: any) => any;
|
||||
type Rev<A> = ()=> A;
|
||||
|
||||
type ChainResult<T> =
|
||||
T extends [infer R0 extends C] ? ReturnType<R0> :
|
||||
T extends [infer R1 extends C, infer R0 extends C] ? ReturnType<R1> & ReturnType<R0> :
|
||||
T extends [infer R2, infer R1, ...infer RX] ? ChainResult2<R2, R1, ChainResult<[R2, R1]>, ChainResult<[Rev<ChainResult<[R2, R1]>>, ...RX]>> :
|
||||
never;
|
||||
|
||||
type ChainResult2<A, B, T, ANS> = T extends ChainResult<[A, B]> ? ANS: never;
|
||||
|
||||
declare function DeclConverter<R0 extends C>(r0: R0): [[R0], ReturnType<R0>];
|
||||
declare function DeclConverter<R0, R1>(r0: R0, r1: R1): [[R0, R1], ChainResult<[R0, R1]>];
|
||||
declare function DeclConverter<R0, R1, R2>(r0: R0, r1: R1, r2:R2) : [[R0, R1, R2], ChainResult<[R0, R1, R2]>];
|
||||
declare function DeclConverter<R0, R1, R2, R3>(r0: R0, r1: R1, r2:R2, r3:R3) : [[R0, R1, R2, R3], ChainResult<[R0, R1, R2, R3]>];
|
||||
declare function DeclConverter<R0, R1, R2, R3, R4>(r0: R0, r1: R1, r2:R2, r3:R3, r4:R4) : [[R0, R1, R2, R3, R4], ChainResult<[R0, R1, R2, R3, R4]>];
|
||||
@@ -2,7 +2,7 @@ import { Request, Response, NextFunction } from "express";
|
||||
import { ReqLogin } from "./reqLogin";
|
||||
import { ReqGameLogin } from "./reqGameLogin";
|
||||
import { ParseUserLevel } from "./ParseUserLevel";
|
||||
|
||||
import { DeclConverter } from "./base2";
|
||||
export type InvalidConversion = {
|
||||
isInvalid: true;
|
||||
reason?: string;
|
||||
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
type C = (...args: any) => any;
|
||||
type Rev<A> = ()=> A;
|
||||
|
||||
type ChainResult<T> =
|
||||
T extends [infer R0 extends C] ? ReturnType<R0> :
|
||||
T extends [infer R1 extends C, infer R0 extends C] ? ReturnType<R1> & ReturnType<R0> :
|
||||
T extends [infer R2, infer R1, ...infer RX] ? ChainResult2<R2, R1, ChainResult<[R2, R1]>, ChainResult<[Rev<ChainResult<[R2, R1]>>, ...RX]>> :
|
||||
never;
|
||||
|
||||
type ChainResult2<A, B, T, ANS> = T extends ChainResult<[A, B]> ? ANS: never;
|
||||
|
||||
export function DeclConverter<R0 extends C>(r0: R0): [[R0], ReturnType<R0>];
|
||||
export function DeclConverter<R0, R1>(r0: R0, r1: R1): [[R0, R1], ChainResult<[R0, R1]>];
|
||||
export function DeclConverter<R0, R1, R2>(r0: R0, r1: R1, r2:R2) : [[R0, R1, R2], ChainResult<[R0, R1, R2]>];
|
||||
export function DeclConverter<R0, R1, R2, R3>(r0: R0, r1: R1, r2:R2, r3:R3) : [[R0, R1, R2, R3], ChainResult<[R0, R1, R2, R3]>];
|
||||
export function DeclConverter<R0, R1, R2, R3, R4>(r0: R0, r1: R1, r2:R2, r3:R3, r4:R4) : [[R0, R1, R2, R3, R4], ChainResult<[R0, R1, R2, R3, R4]>];
|
||||
@@ -0,0 +1,3 @@
|
||||
export function DeclConverter(...target){
|
||||
return [target, undefined];
|
||||
}
|
||||
Reference in New Issue
Block a user