小编Ric*_*Dev的帖子

TypeScript:如何在字符串数组上使用 Array.includes 和可能未定义的值(可选链接)

考虑这个例子:

type SomeType = {
  paymentData?: {
    paymentMethod?: string;
  }
}

const someObj: SomeType = {};

const someTest = ['creditCard', 'payPal'].includes(someObj.paymentData?.paymentMethod);
Run Code Online (Sandbox Code Playgroud)

这在 TypeScript 中不起作用,因为它推断数组元素的类型,因此string它要求与函数一起使用的值includes也是类型string,但someObj.paymentData?.paymentMethod可能是未定义的,即类型是string | undefined。我无法使用非空断言运算符 ( !),因为它无法在可选链接之后使用。

就 JavaScript 而言,如果includes使用 进行检查则完全没问题undefined,只是 TypeScript 对此不满意。有哪些好的方法可以满足 TypeScript 的需求?

javascript typescript

7
推荐指数
1
解决办法
4744
查看次数

标签 统计

javascript ×1

typescript ×1