work-graph-simple/test.test.ts
2025-07-01 09:50:54 -04:00

20 lines
458 B
TypeScript

const check =<T extends object | null, Ret, Args extends [...string[], T]>(settings:{load:(...args:Args)=>Ret, save:(internal:Ret)=>Args})=>
{
return {} as [never, ...Args][Args["length"]];
}
function load(a1:string, a2:string, a3:string, a4:Record<string, number>)
{
return [1, 2, 3]
}
type LoadArgs = Parameters<typeof load>;
function save(n:number[])
{
return ["a", "b", "c", { x: 1, y: 2 }] as LoadArgs
}
const c1 = check({load, save});