0

是否有任何糖可以确保 map 不会使用可选链接/ 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
4

1 回答 1

1

这些类型错误似乎是正确的。您显然不能在对象文字、布尔值或字符串上调用 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存在并且是非空/未定义的。如果它确实存在但不是一个函数,你仍然会得到一个错误。

于 2020-02-08T05:46:25.587 回答