Javascript 解构可能返回未定义的函数的返回
我有以下代码 App.tsxJavascript 解构可能返回未定义的函数的返回,javascript,typescript,Javascript,Typescript,我有以下代码 App.tsx const handleKeyDown = ({key}: {key: string}) => { const [newDirection, nextWalkingState, newPosition] = handleDogMovement(key, dogObject, invalidPositionsTest); } export const handleDogMovement = (key: string, dogObject :
const handleKeyDown = ({key}: {key: string}) => {
const [newDirection, nextWalkingState, newPosition] = handleDogMovement(key, dogObject, invalidPositionsTest);
}
export const handleDogMovement = (key: string, dogObject : Tile, invalidPositions : Position[]) => {
const newDirection = mapKeyDownToDirectionImpl[key.toLowerCase()];
if (!newDirection) return;
const {direction, walkingState, pos} = dogObject;
const nextWalkingState = newDirection === direction ? walkingState! + 2 : 2;
const {offsetX, offsetY} = mapDirectionToOffset[newDirection];
const newPosition = {x: pos.x + offsetX, y: pos.y + offsetY}
if (!isNewPositionValid(newPosition, invalidPositions)) return;
return [newDirection, nextWalkingState, newPosition];
}
然而,handleDogMovement可能返回未定义的。我还能这样分解结果吗?你不能;它会抛出一个错误。试试这个:
const[newDirection,nextWalkingState,newPosition]=handleDogMovement(键,dogObject,invalidPositionTest)| |[];
现在,如果函数返回undefined
,那么变量将是undefined
,但至少不会使脚本崩溃