diff --git a/.changeset/yellow-geese-tap.md b/.changeset/yellow-geese-tap.md new file mode 100644 index 000000000000..e8623fb4f4db --- /dev/null +++ b/.changeset/yellow-geese-tap.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +[breaking] allow `InputProps` and `OutputProps` to be typed separately in `Load` diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index ff1a343b6e8e..310ea5ce8574 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -115,8 +115,14 @@ export interface HandleError { * * Note that you can use [generated types](/docs/types#generated-types) instead of manually specifying the Params generic argument. */ -export interface Load, Props = Record> { - (input: LoadInput): MaybePromise>>; +export interface Load< + Params extends Record = Record, + InputProps extends Record = Record, + OutputProps extends Record = InputProps +> { + (input: LoadInput): MaybePromise< + Either> + >; } export interface Navigation { diff --git a/packages/kit/types/private.d.ts b/packages/kit/types/private.d.ts index 0e32d051229b..48c0659f0ae0 100644 --- a/packages/kit/types/private.d.ts +++ b/packages/kit/types/private.d.ts @@ -220,10 +220,10 @@ export type JSONValue = | JSONValue[] | JSONObject; -export interface LoadInput> { +export interface LoadInput, Props = Record> { url: URL; params: Params; - props: Record; + props: Props; fetch(info: RequestInfo, init?: RequestInit): Promise; session: App.Session; stuff: Partial;