@@ -214,6 +214,26 @@ describe('@types/container', () => {
214214 expect ( c_cannot_resolveAsync_anything ) . toBe ( true )
215215 } )
216216
217+ it ( 'assigns the correct type to sync resolved values' , ( ) => {
218+ type C = Container < { a : number } , { } >
219+
220+ // Checking the type for the resolved value
221+ type C_resolve_ReturnType = ReturnType < C [ 'resolve' ] >
222+ type C_resolve_ReturnType_extends_number =
223+ C_resolve_ReturnType extends number ? true : false
224+ type C_number_extends_resolve_ReturnType =
225+ number extends C_resolve_ReturnType ? true : false
226+ type C_resolve_ReturnType_is_number =
227+ C_resolve_ReturnType_extends_number extends true
228+ ? C_number_extends_resolve_ReturnType extends true
229+ ? true
230+ : false
231+ : false
232+
233+ const c_resolves_number : C_resolve_ReturnType_is_number = true
234+ expect ( c_resolves_number ) . toBe ( true )
235+ } )
236+
217237 it ( 'only resolves the async registered dependency' , ( ) => {
218238 type C = Container < { } , { b : number } >
219239
@@ -236,6 +256,26 @@ describe('@types/container', () => {
236256 expect ( c_can_only_resolve_b ) . toBe ( true )
237257 } )
238258
259+ it ( 'assigns the correct type to async resolved values' , ( ) => {
260+ type C = Container < { } , { a : number } >
261+
262+ // Checking the type for the resolved value
263+ type C_resolveAsync_ReturnType = ReturnType < C [ 'resolveAsync' ] >
264+ type C_resolveAsync_ReturnType_extends_number =
265+ C_resolveAsync_ReturnType extends Promise < number > ? true : false
266+ type C_number_extends_resolve_ReturnType =
267+ Promise < number > extends C_resolveAsync_ReturnType ? true : false
268+ type C_resolveAsync_ReturnType_is_number =
269+ C_resolveAsync_ReturnType_extends_number extends true
270+ ? C_number_extends_resolve_ReturnType extends true
271+ ? true
272+ : false
273+ : false
274+
275+ const c_resolvesAsync_number : C_resolveAsync_ReturnType_is_number = true
276+ expect ( c_resolvesAsync_number ) . toBe ( true )
277+ } )
278+
239279 it ( 'only resolves the sync registered groups' , ( ) => {
240280 type C = Container <
241281 {
0 commit comments