paquete.json
{ "type": "module" }usuarios.js
let users = ["Jack", "Mary"]; export default users;índice.js
import users from './users.js'; users = [];Después de ejecutar index.js me sale un error:
users = []; ^ TypeError: Assignment to constant variable. ¿Por qué? Los users se definieron claramente como una variable, no como una constante.
import users from './users.js';es parecido a
const users = ...en que no puede asignar el valor después. No es exactamente lo mismo porque los valores pueden cambiar, pero solo se pueden cambiar desde dentro del módulo. así que dentro de users.js
let users = []; export const setUser(newUsers) { users = newUsers } export {users, setUser);índice.js
import {users, setUser} from './users.js' console.log(users); console.log(setUser(["a", "b", "c"]));Como explicó @pilchard, para realizar mi tarea necesito cambiar esta matriz dentro del módulo. Eso es porque los valores que importo son de solo lectura fuera del módulo. documentos
usuarios.js
let users = ["Jack", "Mary"]; function emptyUsers() { users = []; } export { users, emptyUsers };índice.js
import { users, emptyUsers } from "./users.js" console.log(users); // ["Jack", "Mary"] emptyUsers(); // instead of users = []; console.log(users); // [] users.push('Ricky'); // Also I can still change the values of the imported array console.log(users); // ['Ricky']intente importar as nombre diferente:
import users as u from "./users.js"