You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to improve BindingToSyntax type definition because it lost type check for toConstructor, toFactory to be compatible with type inferred from bind(XXX) ...etc
But I found conflict test cases:
Expected Behavior
types between BindingToSyntax should be compatible with generic type param of toConstructor.
Current Behavior
The right bottom example of BindingToSyntax<T> requires toConstructor(constructor: Newable<T>)
But the rest 3 examples of BindingToSyntax<Newable<T>> requires toConstructor(constructor: Newable<T>)
Possible Solution
This gives the toConstructor ability to infer the type from BindingToSyntax<T> if T is Newable or returns type never
But the Ninja test fails because it's using wrong types.
I need to change the test case of toConstructor<Ninja>(Ninja).
Steps to Reproduce (for bugs)
Context
Your Environment
Version used:
Environment name and version (e.g. Chrome 39, node.js 5.4):
Operating System and version (desktop or mobile):
Link to your project:
Stack trace
The text was updated successfully, but these errors were encountered:
TotooriaHyperion
changed the title
Ambiguous test case found for type definition.
Conflict test case found for type definition.
Apr 19, 2024
What type do you think is ExtendsLazyServiceIdentifier? The answer is, surprisingly false.
tsc declared types are not inferred as extending new (...args: any[]) => infer T, which is shocking.
I think I'll go to the tsc repo and ask why T is a new (...args: any[]) => infer T but only extends new (...args: any[]) => infer T when the class is not declared by tsc. Until that we will need to find a better solution.
EDIT: It seems https://stackoverflow.com/a/53056911 explains this weird behavior, I was not aware of this static-instance type duality of classes.
I'm trying to improve BindingToSyntax type definition because it lost type check for toConstructor, toFactory to be compatible with type inferred from bind(XXX) ...etc
But I found conflict test cases:
Expected Behavior
types between BindingToSyntax should be compatible with generic type param of toConstructor.
Current Behavior
The right bottom example of BindingToSyntax<T> requires toConstructor(constructor: Newable<T>)
But the rest 3 examples of BindingToSyntax<Newable<T>> requires toConstructor(constructor: Newable<T>)
Possible Solution
This gives the toConstructor ability to infer the type from BindingToSyntax<T> if T is Newable or returns type never
But the Ninja test fails because it's using wrong types.
I need to change the test case of toConstructor<Ninja>(Ninja).
Steps to Reproduce (for bugs)
Context
Your Environment
Stack trace
The text was updated successfully, but these errors were encountered: