Рассмотрим следующие примеры
Старый проект:
const [x, ...y] = "text";
console.info(x) // "t"
console.info(y) // "ext"
Новый проект на базе CRA:
const [x, ...y] = "text";
console.info(x) // "t"
console.info(y) // ["e", "x", "t"]
Я не уверен, почему y возвращает строку ("ext") для старого проекта, где это массив символов (["e", "x", "t"]) для нового проекта. Это как-то связано с разными версиями JS?
Примечание. Оба результата были извлечены после запуска сервера разработки webpack.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


на веб-сайте babel вы можете видеть, что ваш код основан на es2015-свободном преобразовании в этот код, поэтому вывод этого кода такой же, как и в вашем старом проекте.
"use strict";
var _text = "text",
x = _text[0],
y = _text.slice(1);
console.info(x); // "t"
console.info(y); // "ext"
Второй вывод - это тот, который требуется спецификации... (остальные параметры всегда должны создавать массив, независимо от того, что было деструктурировано)