javascript - 如何将可选链接与数组和函数一起使用?

标签 javascript arrays typescript function optional-chaining

我正在尝试使用带有数组而不是对象的可选链接,但不知道如何做到这一点:
这就是我想要做的 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/

相关文章:

javascript - 如何确定一个数字是否构成另一个数字

javascript - JS time - 为两个日期之间的每年创建一个数组

java - 对象数组的空指针异常

javascript - 使用输入类型范围来寻找音频

java - 浏览器不生成文件下载对话框

JavaScript 保留关键字未正确通过函数传递

javascript - 在 native javascript 中从数组中删除重复值的最佳方法是什么

javascript - typescript 如何比较两个对象?

angular - 取消订阅 ReplaySubject 返回 asObservable();

typescript - 如何从现有的 .js 文件写入 d.ts 文件?