This repository was archived by the owner on Apr 21, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +32
-4
lines changed
Expand file tree Collapse file tree 2 files changed +32
-4
lines changed Original file line number Diff line number Diff line change @@ -77,7 +77,14 @@ export interface WritableContainer<
7777 * @param name The "name" of the dependency (can be a symbol).
7878 * @param dependency A dependency factory.
7979 */
80- register < TName extends ContainerKey , TDependency > (
80+ register <
81+ TName extends ContainerKey ,
82+ TDependency extends TName extends keyof TSyncDependencies
83+ ? TSyncDependencies [ TName ]
84+ : TName extends keyof TAsyncDependencies
85+ ? never
86+ : unknown ,
87+ > (
8188 name : TName ,
8289 dependency : SyncDependencyFactory <
8390 TDependency ,
@@ -102,7 +109,14 @@ export interface WritableContainer<
102109 * @param name The "name" of the dependency (can be a symbol).
103110 * @param dependency A dependency factory.
104111 */
105- registerAsync < TName extends ContainerKey , TDependency > (
112+ registerAsync <
113+ TName extends ContainerKey ,
114+ TDependency extends TName extends keyof TSyncDependencies
115+ ? never
116+ : TName extends keyof TAsyncDependencies
117+ ? TAsyncDependencies [ TName ]
118+ : unknown ,
119+ > (
106120 name : TName ,
107121 dependency : AsyncDependencyFactory <
108122 TDependency ,
Original file line number Diff line number Diff line change @@ -77,7 +77,14 @@ export interface WritableContainer<
7777 * @param name The "name" of the dependency (can be a symbol).
7878 * @param dependency A dependency factory.
7979 */
80- register < TName extends ContainerKey , TDependency > (
80+ register <
81+ TName extends ContainerKey ,
82+ TDependency extends TName extends keyof TSyncDependencies
83+ ? TSyncDependencies [ TName ]
84+ : TName extends keyof TAsyncDependencies
85+ ? never
86+ : unknown ,
87+ > (
8188 name : TName ,
8289 dependency : SyncDependencyFactory <
8390 TDependency ,
@@ -102,7 +109,14 @@ export interface WritableContainer<
102109 * @param name The "name" of the dependency (can be a symbol).
103110 * @param dependency A dependency factory.
104111 */
105- registerAsync < TName extends ContainerKey , TDependency > (
112+ registerAsync <
113+ TName extends ContainerKey ,
114+ TDependency extends TName extends keyof TSyncDependencies
115+ ? never
116+ : TName extends keyof TAsyncDependencies
117+ ? TAsyncDependencies [ TName ]
118+ : unknown ,
119+ > (
106120 name : TName ,
107121 dependency : AsyncDependencyFactory <
108122 TDependency ,
You can’t perform that action at this time.
0 commit comments