Проблема с вашей переменной input
.Ошибка просто говорит, что input
не определено, что означает, что вы никогда не давали ему значение.Javascript не будет пытаться разрешить неопределенное значение как ложное, а просто выдаст ошибку.
Если вы хотите сначала протестировать неопределенное значение, измените его на
return input != null && input && input.type && input.type === "private";
Таким образом, он проверит, является ли он нулевым первым, и если он действителен, будет оценен как true и перейдет кследующий расчет.