А вы знали, что теоретически spread-синтаксис в JS можно применять почти к любому типу.
Вот пример "обычного" использования:
Так давайте сделаем iterable!
Можно джунов за собесах мучить :)
Вот пример "обычного" использования:
// Массив спредится console.log([...[1, 2, 3]]); // [1, 2, 3] // Строка спредится console.log([...'Famabara']); // ['F', 'a', 'm', 'a', 'b', 'a', 'r', 'a']Но если попытаться заспредить number, то будет ошибка:
console.log([...555]); // Uncaught TypeError: 555 is not iterableНе является iterable.
Так давайте сделаем iterable!
Number.prototype[Symbol.iterator] = function * () { yield 'Фамабара'; yield 'лучше'; yield 'всех'; } console.log([...555]); // ['Фамабара', 'лучше', 'всех']Мы успешно заспредили number! Толку от этого никакого, на сам факт забавен.
Можно джунов за собесах мучить :)