我正在尝试使用带有数组而不是对象的可选链接,但不知道如何做到这一点:
这就是我想要做的myArray.filter(x => x.testKey === myTestKey)?[0]。还尝试使用函数进行类似的操作:
myArray.filter(x => x.testKey === myTestKey)?[0]
let x = {a: () => {}, b: null} console.log(x?b());
但它给出了类似的错误 - 我如何将可选链接与数组或函数一起使用?
您需要在使用可选链接.之后放置一个:?
.
?
myArray.filter(x => x.testKey === myTestKey)?.[0]
游乐场链接
单独使用?会使编译器认为您正在尝试使用条件运算符(然后它会引发错误,因为它:以后看不到)
:
可选链不仅仅是 TypeScript 的东西——它也是一个用纯 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?.();