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<
77
77
* @param name The "name" of the dependency (can be a symbol).
78
78
* @param dependency A dependency factory.
79
79
*/
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
+ > (
81
88
name : TName ,
82
89
dependency : SyncDependencyFactory <
83
90
TDependency ,
@@ -102,7 +109,14 @@ export interface WritableContainer<
102
109
* @param name The "name" of the dependency (can be a symbol).
103
110
* @param dependency A dependency factory.
104
111
*/
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
+ > (
106
120
name : TName ,
107
121
dependency : AsyncDependencyFactory <
108
122
TDependency ,
Original file line number Diff line number Diff line change @@ -77,7 +77,14 @@ export interface WritableContainer<
77
77
* @param name The "name" of the dependency (can be a symbol).
78
78
* @param dependency A dependency factory.
79
79
*/
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
+ > (
81
88
name : TName ,
82
89
dependency : SyncDependencyFactory <
83
90
TDependency ,
@@ -102,7 +109,14 @@ export interface WritableContainer<
102
109
* @param name The "name" of the dependency (can be a symbol).
103
110
* @param dependency A dependency factory.
104
111
*/
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
+ > (
106
120
name : TName ,
107
121
dependency : AsyncDependencyFactory <
108
122
TDependency ,
You can’t perform that action at this time.
0 commit comments