考虑一下这个例子:
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而言,如果includes与undefined进行检查,那么它是非常好的,只有TypeScript对此不满意。在这里满足TypeScript的好方法是什么?
发布于 2022-03-09 18:38:58
https://stackoverflow.com/questions/71414196
复制相似问题