@@ -60,6 +60,21 @@ const createApiResponseType = ({
6060 ts . factory . createTypeReferenceNode ( BuildCommonTypeName ( apiResponse . name ) ) ,
6161 ) ;
6262
63+ // Response data type for suspense - wrap with NonNullable to exclude undefined
64+ const suspenseResponseDataType = ts . factory . createTypeParameterDeclaration (
65+ undefined ,
66+ TData . text ,
67+ undefined ,
68+ ts . factory . createTypeReferenceNode (
69+ ts . factory . createIdentifier ( "NonNullable" ) ,
70+ [
71+ ts . factory . createTypeReferenceNode (
72+ BuildCommonTypeName ( apiResponse . name ) ,
73+ ) ,
74+ ] ,
75+ ) ,
76+ ) ;
77+
6378 const responseErrorType = ts . factory . createTypeParameterDeclaration (
6479 undefined ,
6580 TError . text ,
@@ -93,6 +108,12 @@ const createApiResponseType = ({
93108 * MyClassMethodDefaultResponse
94109 */
95110 responseDataType,
111+ /**
112+ * ResponseDataType for suspense - wrap with NonNullable to exclude undefined
113+ *
114+ * NonNullable<MyClassMethodDefaultResponse>
115+ */
116+ suspenseResponseDataType,
96117 /**
97118 * ErrorDataType
98119 *
@@ -202,6 +223,7 @@ function createQueryHook({
202223 }
203224
204225 const isInfiniteQuery = queryString === "useInfiniteQuery" ;
226+ const isSuspenseQuery = queryString === "useSuspenseQuery" ;
205227
206228 const responseDataTypeRef = responseDataType . default as ts . TypeReferenceNode ;
207229 const responseDataTypeIdentifier =
@@ -266,7 +288,9 @@ function createQueryHook({
266288 ts . factory . createIdentifier (
267289 isInfiniteQuery
268290 ? "UseInfiniteQueryOptions"
269- : "UseQueryOptions" ,
291+ : isSuspenseQuery
292+ ? "UseSuspenseQueryOptions"
293+ : "UseQueryOptions" ,
270294 ) ,
271295 [
272296 ts . factory . createTypeReferenceNode ( TData ) ,
@@ -469,6 +493,7 @@ export const createUseQuery = ({
469493 const {
470494 apiResponse : defaultApiResponse ,
471495 responseDataType,
496+ suspenseResponseDataType,
472497 responseErrorType,
473498 } = createApiResponseType ( {
474499 methodName,
@@ -496,7 +521,7 @@ export const createUseQuery = ({
496521 const suspenseQueryHook = createQueryHook ( {
497522 queryString : "useSuspenseQuery" ,
498523 suffix : "Suspense" ,
499- responseDataType,
524+ responseDataType : suspenseResponseDataType ,
500525 responseErrorType,
501526 requestParams,
502527 method,
0 commit comments