В канале Максима Соснова увидел ссылку на статью — размышления одного из разработчиков из инфраструктурной команды DigitalOcean о принципах и подходах, применяемых при разработке ui-кита. И в ней автор тоже пинает spread-оператор за неявность. А именно, JSX-конструкцию
—
Отказ от использования в JSX spread для внешних данных спасает от появления странных багов.
Т.е. я избегают использования любых spread-операторов при обработке внешних данных. Да, я не хочу иметь возможность прокидывать вслепую пропсы из одного компонента в другой (если быть честным, мне кажется что это отличное общее правило при работе с пропсами)
1. Может быть непонятно, откуда неожиданно прилетело значение конкретного атрибута (пропа). И поиск тут не поможет.
2. Это позволяет переслать неожиданные атрибуты и TypeScript тут ничего не поймает
Рекомендация — делать деструктуризацию и честно пересылать атрибуты, выкидывая заодно мусор.
Примеры в статье, ищите по фразе «Avoiding JSX spread»
{…props}
—
Отказ от использования в JSX spread для внешних данных спасает от появления странных багов.
Т.е. я избегают использования любых spread-операторов при обработке внешних данных. Да, я не хочу иметь возможность прокидывать вслепую пропсы из одного компонента в другой (если быть честным, мне кажется что это отличное общее правило при работе с пропсами)
1. Может быть непонятно, откуда неожиданно прилетело значение конкретного атрибута (пропа). И поиск тут не поможет.
2. Это позволяет переслать неожиданные атрибуты и TypeScript тут ничего не поймает
Рекомендация — делать деструктуризацию и честно пересылать атрибуты, выкидывая заодно мусор.
Примеры в статье, ищите по фразе «Avoiding JSX spread»