Допустим, у нас есть такая функция:
someFunc(item) {
if (!item.itemType) return false
item
проверка параметров выполняется в каком-то другом слое приложения, поэтому она "никогда" не получает значение falsy
. Мой подход все еще проверяет это так:
someFunc(item) {
if (!item || !item.itemType) return false
Причина, по которой я всегда проверяю, заключается в том, что другой уровень приложения может измениться, и никому не очевидно, что он обрабатывается где-то в кодовой базе. И я не хочу копаться в кодовой базе, чтобы подтвердить это.
Является ли мой подход хорошим в том смысле, что должна проводиться каждая проверка параметров и что мы всегда должны проверять конкретные вещи, например, проверить, является ли тип параметра массив, объект, ноль и т. д.? У меня есть эта дискуссия с моим коллегой, который предпочитает делать это, как в первом примере.