javascript - 是否有糖与可选链接/无效合并来防止 Array.map 出现类型错误?

标签 javascript arrays ecmascript-6 optional-chaining nullish-coalescing

有没有什么糖可以确保 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

最佳答案

这些类型错误似乎是正确的。显然,您不能在对象字面量、 bool 值或字符串上调用映射。

如果您无论如何都想选择性地调用映射,您可以使用 ?.(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 的属性是否存在并且是否为非 null/未定义。如果它确实存在但不是函数,您仍然会收到错误。

关于javascript - 是否有糖与可选链接/无效合并来防止 Array.map 出现类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60124249/

相关文章:

Javascript字符串插值给出与字符串连接不同的结果

Javascript 类变量重新分配

javascript - 如何将字符串值传递给firebase child()?

javascript - 在 Angular 6 中创建一个秒表

c# - 奇怪的数组行为

javascript - JS 将值推送到对象数组

javascript - 如何在 Mocha 中使用 Native Node JS 模块(--experimental-modules)

javascript - 选项卡应用程序 - Angular 6

javascript - size() 函数不与 js 选择器/is 一起使用

php - 格式化手机号码数组