Michael Gevlich я считаю, что любое практическое задание при найме лучше чем его отсутствие. Особенно подойдет для junior/middle ролей, где воронка широкая и нужно ее просеять перед тем как тратить время на очное собеседование.
Для Senior+ работает уже не так хорошо по ряду причин:
1) Синьйоров мы обычно сами хантим и у них нет мотивации тратить время на тестовые задания. Продать интервью для HR проще чем продать тестовое задание.
2) Домашняя работа скрывает ключевой фактор - как много времени было потрачено на решение и сколько итераций гугления и дебага это заняло. Продуктивность программистов отличается в разы, а иногда на порядок. Убирая лимит по времени, мы эту разницу размываем. Если дать решать ЕГЭ на дом - у всех кто не ленивый будет 90+ балов.
3) Когда решаем задачи в реальном времени - у нас есть возможность проверить наш культурный код и софт-скилы на совместимость. Это как мини демо-версия ваших будущих профессиональных отношений. Я про это упоминал еще в предыдущих статьях. В тестовом задании у нас такого интерактива нет, есть только код.
Andrey Bondarev
ts one love
const arr1 = [1, 2, null, 3] const arr2 = arr1.filter((item) => item !== null)
Вставил это в typescript playground - тип у arr2 вывелся как number[] - поэтому функция с тайпгардом isNonNullable как бы overkill Мне кажется вам надо в условии добавить [1, 2, null, undefined, 0, NaN, 3] и код const arr2 = arr1.filter((item) => !!item); и тогда ваша функция isNonNullable станет очень даже нужной.