angular - วิธีการใช้ collections.js ใน typescript?
ฉันต้องการใช้ collections.js ในโปรเจกต์ Angular2 ของฉันที่เขียนด้วย Typescript ฉันต้องการเริ่มต้นด้วย multimap ไม่มีแพ็กเกจ @types/collections และไม่มี collections.js ใน typings
เมื่อฉันเขียน
const MultiMap = require('collections/multi-map')
ฉันได้รับ 'NoProviderError for PlatformRef' ใน Angular2
คำตอบ #1
ข้อผิดพลาด NoProviderError เกิดจากความจริงที่ว่าห้องสมุด collection.js เปลี่ยนวิธีการทำงานของ primitive พื้นฐาน โดยเฉพาะ Array
ภายใน, zone.js (ซึ่งเป็นส่วนหนึ่งของ Angular) เรียกใช้ Array.from พร้อมอินสแตนซ์ของ MapIterator เป็นอาร์กิวเมนต์ ในไฟล์ collections/shim-array.js, ไลบรารีนี้จะเขียนทับ Array.from ด้วยการนำไปใช้งานที่ไม่สามารถทำงานกับ MapIterator ได้ ในภาพหน้าจอคุณสามารถเห็นได้ว่ามันส่งกลับอาร์เรย์ว่าง ในขณะที่การนำไปใช้งานแบบเนทีฟส่งกลับอาร์เรย์ที่มี 13 องค์ประกอบ
ข้อสรุปก็คือ น่าเสียดายที่คุณไม่สามารถใช้ไลบรารี Collections.js กับ Angular ได้
