import type { Param0 } from "../Param0.ts";import { doExtends } from "../doExtends.ts";import type { Any } from "ts-toolbelt DENOIFY: DEPENDENCY UNMET (DEV DEPENDENCY)";
function test<T, U>() { const f = (params: { foo: T; bar: U }) => { return params; };
type Expected = { foo: T; bar: U; };
type Got = Param0<typeof f>;
doExtends<Any.Equals<Got, Expected>, 1>();}
function test<T, U>() { const f = (params: { foo: T; bar: U }, a: unknown, b: unknown) => { return { ...params, a, b, }; };
type Expected = { foo: T; bar: U; };
type Got = Param0<typeof f>;
doExtends<Any.Equals<Got, Expected>, 1>();}
{ type Got = Params<string>;}
{ class A { foo: number;
constructor(foo: number) { this.foo = foo; } }
type Got = Params<A>;}
{ type Got = Param0<undefined | null | false | "">; type Expected = never;
doExtends<Any.Equals<Got, Expected>, 1>();}