@dreamkit/solid
Version:
DreamKit tools for Solid.
16 lines • 610 B
TypeScript
import type { AnchorProps } from "@solidjs/router";
import { JSXElement } from "solid-js";
type PickRequiredProps<T> = {
[K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K];
};
export type LinkProps<T, P extends keyof T> = Omit<AnchorProps, "href"> & {
href: P;
} & (T[P] extends never ? {} : keyof PickRequiredProps<T[P]> extends never ? {
params?: T[P];
} : {
params: T[P];
});
export type LinkComponent<T> = <P extends keyof T>(inProps: LinkProps<T, P>) => JSXElement;
export declare function defineLink<T>(): LinkComponent<T>;
export {};
//# sourceMappingURL=defineLink.d.ts.map