📌  相关文章
📜  属性“数据”没有初始值设定项,也没有在构造函数中明确分配.ts(2564) (1)

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

TypeScript错误提醒:属性“数据”没有初始值设定项,也没有在构造函数中明确分配

这个 TypeScript 错误信息通常是指某个类中的成员变量(属性)在定义时没有被分配初值,同时在构造函数中也没有被赋值。

例如,下面这个类定义:

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

以上代码中,Person 类中的 name 和 age 属性都没有被分配初始值,也没有在构造函数中被明确地赋值。这时, TypeScript 会报错: "属性“数据”没有初始值设定项,也没有在构造函数中明确分配"。

为了修正这个错误,我们可以通过以下两种方式解决:

1. 在定义时为成员变量赋初值

可以在成员变量定义时为其赋初值。例如:

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

以上代码中,我们给 name 和 age 属性都分别赋了一个默认值。当我们创建这个类的实例时,如果没有手动赋值,那么这些属性默认值将会被使用。

2. 在构造函数中赋值

另一种解决方案是在构造函数中为属性赋值:

class Person {
    name: string;
    age: number;

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

以上代码中,我们定义了空的构造函数,但在函数体中明确地给 name 和 age 属性赋了初始值。

无论使用上述的哪种方法,只要为属性分配了初值就可以避免 TypeScript 的提示错误。在应用 TypeScript 开发过程中,我们需要注意定义成员变量需要明确地分配初始值。