Typescript未检测到空检查并抱怨参数不可分配
所以我有一个函数,它需要一个不可为null的类型。在调用函数之前,我检查输入参数是否不为null,但typescript显然无法理解这一点,并抱怨说: “HermiteOctreeNode | undefined”类型的参数不能分配给“HermiteOctreeNode”类型的参数 类型“undefined”不可分配给类型“HermiteOctreeNode”Typescript未检测到空检查并抱怨参数不可分配,typescript,null,Typescript,Null,所以我有一个函数,它需要一个不可为null的类型。在调用函数之前,我检查输入参数是否不为null,但typescript显然无法理解这一点,并抱怨说: “HermiteOctreeNode | undefined”类型的参数不能分配给“HermiteOctreeNode”类型的参数 类型“undefined”不可分配给类型“HermiteOctreeNode” if(node.nodeType!==node\u-TYPE\u-LEAF&&node.nodeType!==node\u-TYPE\u
if(node.nodeType!==node\u-TYPE\u-LEAF&&node.nodeType!==node\u-TYPE\u-PSEUDO){
for(设i=0;i
如果您完全确定运算符不为空,则可以使用(!
):
关于此问题,有关于此运算符的更多信息:作为另一种解决方案,您可以将数组值存储在变量中,它将解决您的问题:
const child = node.children[i];
if (child != null) {
rebuildOctreeNode(node, child, i);
}
if (node.children[i] !== null) {
rebuildOctreeNode(node, node.children[i]!, i);
}
const child = node.children[i];
if (child != null) {
rebuildOctreeNode(node, child, i);
}