diff --git a/packages/graphql-modules/src/di/index.ts b/packages/graphql-modules/src/di/index.ts
index 18ff2ddd01..58067e6072 100644
--- a/packages/graphql-modules/src/di/index.ts
+++ b/packages/graphql-modules/src/di/index.ts
@@ -2,6 +2,7 @@ export { Injectable, Optional, Inject, ExecutionContext } from './decorators';
 export { forwardRef } from './forward-ref';
 export {
   InjectionToken,
+  InjectionTokenTargetType,
   Type,
   Provider,
   AbstractType,
diff --git a/packages/graphql-modules/src/di/providers.ts b/packages/graphql-modules/src/di/providers.ts
index 7ef34ab0d7..7da25dd0a7 100644
--- a/packages/graphql-modules/src/di/providers.ts
+++ b/packages/graphql-modules/src/di/providers.ts
@@ -11,6 +11,10 @@ export class InjectionToken<T> {
   }
 }
 
+export type InjectionTokenTargetType<T> = T extends InjectionToken<infer U>
+  ? U
+  : never;
+
 export function isToken(v: any): v is InjectionToken<any> {
   return v && v instanceof InjectionToken;
 }
diff --git a/packages/graphql-modules/src/index.ts b/packages/graphql-modules/src/index.ts
index 2ecd92fd5e..5404651835 100644
--- a/packages/graphql-modules/src/index.ts
+++ b/packages/graphql-modules/src/index.ts
@@ -24,6 +24,7 @@ export {
   TypeProvider,
   forwardRef,
   InjectionToken,
+  InjectionTokenTargetType,
   Scope,
 } from './di';
 
diff --git a/website/docs/di/providers.mdx b/website/docs/di/providers.mdx
index 26fef1c92b..731fd9167a 100644
--- a/website/docs/di/providers.mdx
+++ b/website/docs/di/providers.mdx
@@ -307,6 +307,18 @@ class Posts {
 
 > `@Inject` decorator is needed because of limitation of type system.
 
+In order to avoid repeating the target type of an injection token when a injecting dependency through the constructor, the utility type `InjectionTokenTargetType` can be used. The previous code sample can be rewritten in the following manner:
+
+```typescript
+import { Injectable, Inject, InjectionTokenTargetType } from 'graphql-modules'
+import { ApiKey } from './keys'
+
+@Injectable()
+class Posts {
+  constructor(@Inject(ApiKey) private key: InjectionTokenTargetType<typeof ApiKey>) {}
+}
+```
+
 </TabItem>
 </Tabs>