我正在尝试使用带有数组而不是对象的可选链接,但不知道如何做到这一点:
这就是我想要做的 myArray.filter(x => x.testKey === myTestKey)?[0]
.
还尝试使用函数进行类似的操作:
let x = {a: () => {}, b: null}
console.log(x?b());
但它给出了类似的错误 - 我如何将可选链接与数组或函数一起使用?
最佳答案
您需要输入 .
在 ?
之后使用可选链接:
myArray.filter(x => x.testKey === myTestKey)?.[0]
Playground link仅使用
?
单独使编译器认为您正在尝试使用条件运算符(然后它会抛出一个错误,因为它没有看到 :
稍后)可选链接不仅仅是 TypeScript 的东西 - 它是一个完成的提案 in plain JavaScript也。
它可以与上面的括号表示法一起使用,但也可以与点表示法属性访问一起使用:
const obj = {
prop2: {
nested2: 'val2'
}
};
console.log(
obj.prop1?.nested1,
obj.prop2?.nested2
);
并使用函数调用:
const obj = {
fn2: () => console.log('fn2 running')
};
obj.fn1?.();
obj.fn2?.();
关于javascript - 如何将可选链接与数组和函数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59623674/