我try 使用可选的数组链接,而不是对象链接,但不确定如何做到这一点:

以下是我要做的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

仅使用?会使编译器认为您正在try 使用条件运算符(然后它会抛出一个错误,因为它在后面看不到:)

可选链接不仅仅是一个打字脚本的东西,它也是一个完整的提议.

它可以与上述括号符号一起使用,但也可以与点符号属性访问一起使用:

const obj = {
  prop2: {
    nested2: 'val2'
  }
};

console.log(
  obj.prop1?.nested1,
  obj.prop2?.nested2
);

对于函数调用:

const obj = {
  fn2: () => console.log('fn2 running')
};

obj.fn1?.();
obj.fn2?.();

Typescript相关问答推荐

使用新控制流的FormArray内部的Angular FormGroup

无需刷新即可让现场访客逆变

如何创建泛型类型组件来使用React Native的FlatList或SectionList?'

如果请求是流,如何等待所有响应块(Axios)

输入元素是类型变体的对象数组的正确方法是什么?'

为什么TypeScript假设文档对象始终可用?

当方法参数和返回类型不相互扩展时如何从类型脚本中的子类推断类型

如何在TypeScrip中从字符串联合类型中省略%1值

通过按键数组拾取对象的关键点

使用2个泛型类型参数透明地处理函数中的联合类型

为什么我在这个重载函数中需要`as any`?

Typescript 类型守卫一个类泛型?

在React中定义props 的不同方式.FunctionalComponent

Typescript -返回接口中函数的类型

带有';的类型脚本嵌套对象可选属性错误满足';

如何使用useSearchParams保持状态

如何提取具有索引签名的类型中定义的键

Typescript:是否将联合类型传递给重载函数?

Typescript 从泛型推断类型

对象只能使用 Typescript 中另一个对象的键