类型错误:从另一个文件导入变量时分配给 const 变量,将变量声明为 let

问题描述 投票:0回答:2

在 JavaScript(Node.JS) 中,我制作了一个如下所示的 config.js 文件,用于导出名称变量:

Config.js

export let name ="ayush";

我正在

index.js
文件中导入 name 变量

index.js

import {name} from "./config.js";

name ="Rishabh"

console.log(name);

但我越来越

Type Error:assignment to constant variable

我已经将变量声明为let,为什么还是出现上述错误?

我正在尝试更改另一个文件中的变量名称。但我收到错误,无法理解缺少什么 JavaScript 概念(导入仅是只读的)。

javascript node.js
2个回答
3
投票

在 JavaScript 中,导入的绑定是只读的。您无法在导入它们的模块中更改它们的值。

这是因为导出可变变量可能会导致不可预测的行为和错误。

如果您想共享一个公共对象,并且该对象也需要可变,请导出一个 const 对象并修改它的属性。

配置.js

export const obj = {
    name: 'xxx'
};

index.js

import {obj} from "./config.js";

obj.name ="Rishabh";

console.log(name);

1
投票

请记住,在您的

index.js
文件中,您正在重新分配从
name
文件导入的
config.js
变量,这是不允许的。

您应该使用对象而不是原始值,因为即使对象本身作为常量导入,对象的属性也可以修改。

这样做是为了

Config.js

export let config = {
  name: "ayush"
};

然后这样做

index.js

import { config } from "./config.js";

config.name = "Rishabh"; // modify the property of the object

console.log(config.name); // logs "Rishabh"

试试这个我希望它会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.