inversify / InversifyJS

A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.

Home Page:http://inversify.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Conflict test case found for type definition.

TotooriaHyperion opened this issue · comments

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:
image

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

image

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