Missing initializer in const declaration JS 和 TS 错误

目录

Missing initializer in const declaration Error in JS

  1. JS 中的 const 声明错误中缺少初始值设定项
  2. “Const”声明必须在 TypeScript 中初始化

如果您在使用TypeScript时遇到错误,请单击第二个副标题。

Missing initializer in const declaration JS 错误

“Missing initializer in const declaration”错误发生在使用 声明变量时const,但其值未在同一行上初始化。

要解决该错误,请在声明它的同一行上初始化该变量,例如const num = 30;.

const 声明中缺少初始值设定项

下面是错误如何发生的示例。

索引.js
// ⛔️ Missing initializer in const declaration const country; // ⛔️ Missing initializer in const declaration const age; age = 30;

我们使用const关键字声明了一个变量

,但是,我们并没有在同一行中初始化它的值。

使用声明的变量const不能被重新赋值,所以我们必须在声明时设置它们的值。
索引.js
const name = 'bobby'; const age = 30; const arr = ['bobby', 'hadz', 'com'];

用于let声明可以重新赋值的变量

如果您需要声明一个可以重新分配的变量,请改用
let
语句。

索引.js
// ✅ let = can be reassigned let country; country = 'Chile'; // ✅ const = Set value upon declaration const age = 30;

使用声明的变量let稍后可以在您的代码中重新分配。

如果您无法找出错误发生的位置,请查看浏览器Console选项卡或 Node.js 终端中的错误消息。

错误信息应该显示发生错误的文件和具体的行。

声明的变量let不能重新声明

let可以重新分配使用该语句声明的变量。但是,它们不能重新声明。

索引.js
let country; // ⛔️ Identifier 'country' has already been declared let country = 'Chile';

我们试图重新声明该country变量并出现错误。相反,
let在重新分配使用声明的变量时省略关键字let

索引.js
let age; age = 30; console.log(age); // 👉️ 30 age = 31; console.log(age); // 👉️ 31

使用时在同一行设置值const

如果您不需要重新分配变量,请const在声明变量时使用关键字并设置其值。

索引.js
// ✅ Works const country = 'Chile'; // ⛔️ Error: Assignment to constant variable country = 'Brazil';
const不能重新分配使用关键字声明的变量。

使用const让代码的读者知道以后不会重新分配此变量。

关键字const不会使对象和数组不可变

请注意,const关键字不会使对象或数组不可变,它只是阻止您重新分配变量。

索引.js
// 👇️ can change the contents of an array declared using const const arr = ['bobby', 'hadz']; arr[0] = 'xyz'; console.log(arr); // 👉️ [ 'xyz', 'hadz' ] // --------------------------------------------- // 👇️ can change the contents of an object declared using const const obj = {name: 'bobby'}; obj['name'] = 'alice'; console.log(obj); // 👉️ { name: 'alice' }

我们仍然可以更改使用 声明的数组或对象的内容
const,但是,我们不能重新声明或重新分配变量。

‘Const’ 声明必须在 TypeScript 中初始化

“const declarations must be initialized”错误出现在我们声明一个变量usingconst但不给它赋值时。

要解决该错误,请在声明变量的同一语句中指定一个值,或改用关键字let

下面是错误如何发生的示例。

索引.ts
// ⛔️ 'const' declarations must be initialized.ts(1155) const arr: string[];

我们arr使用
const
关键字声明变量,但没有为其赋值。

const为了解决这个错误,我们必须在声明它的同一语句中为变量赋值。

索引.ts
const arr: string[] = [];

您分配给变量的值将取决于它的类型。

使用let关键字解决错误

另一种解决方案是使用
let
关键字来声明您的变量。

索引.ts
let arr: string[]; arr = ['bobby', 'hadz']; arr = ['.', 'com']; console.log(arr); // 👉️ ['.', 'com']

使用let关键字时,可以根据需要多次重新分配变量。

另一方面,声明为 using 的变量const不能被重新赋值,这就是为什么会出现“const declarations must be initialized”错误的原因。

如果你声明一个const没有值的变量,你实际上是在声明一个空变量,它不能被重新分配并在以后被赋予一个值,这一定是一个错误。

我们使用冒号为变量指定类型,使用等号为其赋值。

索引.ts
const obj: { name: string } = { name: 'Bobby Hadz' };

请注意,不能重新分配使用声明的变量const,但它们不是不可变的。

索引.ts
const obj: { name: string } = { name: 'Bobby Hadz' }; obj['name'] = 'Carl'; console.log(obj); // 👉️ {name: 'Carl'} // ⛔️ Error: Assignment to constant variable. obj = { name: 'Alan' };

代码示例显示我们能够更改使用 声明的对象的值const,但是,尝试重新分配const变量会导致错误。

这是因为不允许重新分配或重新声明使用const关键字声明的变量。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: