我以这种方式检查数组是否包含该值:
testArray.includes(value)
Run Code Online (Sandbox Code Playgroud)
如果数组为空或它包含该值,我需要执行相同的操作。所以我有这样的条件:
if (testArray == [] || testArray.includes(value)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
但typescript正在尝试执行此条件的第二部分,即使testArray == []。所以我收到一个错误testArray.includes is underfined。
我知道我可以这样修复它:
if (testArray == []) {
// do something
} else if (testArray.includes(value)) {
// do the same thing
}
Run Code Online (Sandbox Code Playgroud)
但看起来不太好。有没有办法把它放在一个if中?
testArray是一个 openapi 查询参数,如果它很重要的话。
该数组是一个reference type. 当您想用 进行检查时[ ],它们并不相等。他们是不同的;用 来检查这种情况length会更好。因此,根据您的代码,您应该执行以下操作:
if (!testArray || testArray.length == 0 || testArray.includes(value)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)