私は次のコードを持っています。
App.tsx
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(key, dogObject, invalidPositionsTest) || [];
これでundefined
、関数がを返す場合の変数になりますundefined
が、少なくともスクリプトをクラッシュさせることはありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加