Эти ошибки типа кажутся правильными. Очевидно, вы не можете вызвать map для литерала объекта, логического значения или строки.
Если вы все равно хотите дополнительно вызывать 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
и является ли оно ненулевым / неопределенным. Если он существует, но не является функцией, вы все равно получите сообщение об ошибке.