TypeScript 中 ‘Const’ declarations must be initialized 错误

const declarations must be initialized”错误发生在我们使用 const 声明一个变量但没有给它赋值时。 要解决该错误,请在声明变量的同一语句中指定一个值,或者改用 let 关键字。

下面是产生上述错误的一个示例。

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

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

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

const arr: string[] = [];

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

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

let arr: string[];

arr = ['a', 'b'];

arr = ['c', 'd'];

console.log(arr); // 👉️ ['c', 'd']

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

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

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

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

const obj: { name: string } = { name: 'James Doe' };

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

const obj: { name: string } = { name: 'James' };
obj['name'] = 'Carl';

console.log(obj); // 👉️ {name: 'Carl'}

// ⛔️ Error: Assignment to constant variable.
obj = { name: 'Alan' };

代码片段显示我们能够更改使用 const 声明的对象的值,但是尝试重新分配 const 变量会导致错误 – “Assignment to constant variable”。

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


总结

“const declarations must be initialized”错误发生在我们使用 const 声明一个变量但没有给它赋值时。 要解决该错误,请在声明变量的同一语句中指定一个值,或者改用 let 关键字。