I want to use collections.js in my typescript Angular2 project. I want to start with multimap. There's no @types/collections package and there's no collections.js in typings.
When I write
const MultiMap = require('collections/multi-map')
I got "NoProviderError for PlatformRef" in Agnular2.
An error NoProviderError is caused by the fact that collection.js library changes the way how built-in primitives work, particularly Array.
Internally, zone.js (which is a part of Angular) invokes Array.from with an instance of MapIterator as an argument. In collections/shim-array.js file, this library overrides Array.from with an implementation, that doesn't work with MapIterator. In screenshot you can see, that it returns an empty array, while native implementation returns an array of 13 elements.

A conclusion is, that sadly you can't use Collections.js library with Angular.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With