Skip to content

Moving from Symbol.for() to Symbol() doesn't resolve dependencies correctly #1559

Closed
@Rmonik

Description

@Rmonik

Given that you use a global object which holds Symbol("Something") values and having bound a class to that identifier.
If I try to get that identifier from the container, i get a "No bindings found" error. When changing the Symbol to a Symbol.for, this issue is not present.

Expected Behavior

Symbol() should work just as well as Symbol.for.

Current Behavior

Using a Symbol() doesn't correctly resolve dependencies.

Possible Solution

Steps to Reproduce (for bugs)

  1. Create a constant: const a = Symbol("a");
  2. Bind something to it: container.bind(a).to(MyClass);
  3. Get it from the container: container.getAsync(a);
  4. Error: No matching bindings found for Symbol(a)

Context

I would like to use true Symbols (as opposed to Symbol.for, which i don't see the point in using) as we're facing naming collisions.

Your Environment

  • Version used: 6.0.1

Stack trace

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions