Mi variable no es una constante y sigo recibiendo un error: "Error de tipo no detectado: asignación a variable constante". ¿Alguna idea de por qué?
serpiente.js
export let SNAKE_SPEED = 3;comida.js
import { snakeBody, SNAKE_SPEED } from "./snake.js"; export function update() { let head = snakeBody[0]; if (head.x == food.x && head.y == food.y) { food.x = Math.round(Math.random() * 21); food.y = Math.round(Math.random() * 21); SNAKE_SPEED++; } }La variable en cuestión es SNAKE_SPEED.
Los identificadores importados de otros módulos no se pueden reasignar. Para lograr algo como esto, puede hacer que el otro módulo exporte una función que lo cambie, por ejemplo:
export let SNAKE_SPEED = 3; export const changeSnakeSpeed = newSpeed => SNAKE_SPEED = newSpeed; import { snakeBody, SNAKE_SPEED, changeSnakeSpeed } from "./snake.js"; y luego llamar a changeSnakeSpeed(SNAKE_SPEED + 1) , y SNAKE_SPEED habrá cambiado.
O hacer algo como
export const incrementSnakeSpeed = () => SNAKE_SPEED++; incrementSnakeSpeed();O coloque las variables que se cambian con frecuencia en un solo objeto que se pueda mutar (o reasignar y recuperar de nuevo, si prefiere la inmutabilidad).