테스트

This commit is contained in:
2023-08-07 17:30:45 +00:00
parent d928241e00
commit 3f7e645e40
4 changed files with 21 additions and 19 deletions
-18
View File
@@ -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]>];
+1 -1
View File
@@ -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;
+17
View File
@@ -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]>];
+3
View File
@@ -0,0 +1,3 @@
export function DeclConverter(...target){
return [target, undefined];
}