Есть ли сахар с необязательным объединением цепочек / нулевым объединением для предотвращения ошибок типа с помощью, скажем, Array.map?
Есть ли какой-то сахар, чтобы гарантировать, что карта не будет печатать с ошибками с использованием таких инструментов, как необязательное объединение цепочек / нулевое объединение?
let x = {y: 1, z: 2};
x?.map(i => i); // Typeerror
Array.isArray(x)?.map(i => i); // Typeerror
let y = '1234';
y?.length && y.map(i => i) // Typeerror
1 ответ
Решение
Эти ошибки типа кажутся правильными. Очевидно, вы не можете вызвать map для объекта литерал, логическое значение или строку.
Если вы все равно хотите дополнительно вызвать карту, вы можете продолжить необязательную цепочку с помощью ?.(params)
:
let x = {y: 1, z: 2};
x?.map?.(i => i);
Array.isArray(x)?.map?.(i => i);
let y = '1234';
y?.length && y.map?.(i => i)
Имейте в виду, что это только проверяет, называется ли свойство map
существует и не является нулевым / неопределенным. Если он существует, но не является функцией, вы все равно получите сообщение об ошибке.