首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeScript:如何在字符串数组上使用可能未定义的值(可选链接)的Array.includes

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

Stack Overflow用户
提问于 2022-03-09 18:18:02
回答 3查看 1.2K关注 0票数 3

考虑一下这个例子:

代码语言:javascript
运行
复制
type SomeType = {
  paymentData?: {
    paymentMethod?: string;
  }
}

const someObj: SomeType = {};

const someTest = ['creditCard', 'payPal'].includes(someObj.paymentData?.paymentMethod);

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

就JavaScript而言,如果includesundefined进行检查,那么它是非常好的,只有TypeScript对此不满意。在这里满足TypeScript的好方法是什么?

EN

Stack Overflow用户

发布于 2022-03-09 18:38:58

您可以使用非空断言运算符 - !

代码语言:javascript
运行
复制
type SomeType = {
  paymentMethod?: string;
}

const someObj: SomeType = {};

const someTest = ['creditCard', 'payPal'].includes(someObj.paymentMethod!);

工作实例

票数 -1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71414196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档