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