是否有 Optional chaining/nullish 的糖合并以防止 say Array.map 的类型错误?

Is there sugar with Optional chaining/nullish coalescing to prevent Typeerrors with say Array.map?

有什么糖可以确保地图不会使用 optional chaining/nullishcoalescing 之类的工具输入错误吗?

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

这些类型错误似乎是正确的。您显然不能在对象文字、布尔值或字符串上调用 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 的 属性 是否存在并且是 non-null/undefined。如果它确实存在但不是函数,您仍然会收到错误消息。