📌  相关文章
📜  属性 '...' 没有初始化程序,也没有在构造函数中明确分配 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:39:21.852000             🧑  作者: Mango

属性 '...' 没有初始化程序,也没有在构造函数中明确分配 - TypeScript

在TypeScript中,当我们定义一个新的类时,如果该类具有一个属性没有被初始化,也没有在构造函数中被明确地分配,TypeScript编译器就会给出一个编译错误:"属性 '...' 没有初始化程序,也没有在构造函数中明确分配"。

例如,我们可能有一个这样的类:

class Person {
    name: string;
    age: number;
}

在这个例子中,我们定义了一个Person类,该类有两个属性:nameage,但是它们都没有被初始化。这将导致TypeScript编译器给出上述错误。

要解决这个问题,我们需要在声明属性时明确地为它们分配一个初始值。例如:

class Person {
    name: string = '';
    age: number = 0;
}

或者,在构造函数中为它们分配一个值:

class Person {
    name: string;
    age: number;

    constructor() {
        this.name = '';
        this.age = 0;
    }
}

通过这样做,我们就可以消除这个编译错误,并确保我们的代码始终能够正确地在运行时进行初始化。

总结:

  • 在TypeScript中,如果定义一个属性没有被初始化,也没有在构造函数中被明确地分配,编译器就会报错。
  • 可以在声明属性时为其分配一个初始值,也可以在构造函数中为其分配一个值。
  • 通过消除这个编译错误,我们确保我们的代码始终能够正确地在运行时进行初始化。