gpt4 book ai didi

javascript - typescript - 不可分配给打字学生

转载 作者:行者123 更新时间:2023-12-03 00:50:35 25 4
gpt4 key购买 nike

我的构造函数中有一个错误>> this.allStudents

class Students {
public StudentsId: number;
public StudentsName: string;
public allStudents?: Students[];
constructor() {
this.allStudents = [
{ StudentsId: 100, StudentsName: 'Mahmoud'},
{ StudentsId: 101, StudentsName: 'Sami' },
{ StudentsId: 102, StudentsName: 'Osama' },
{ StudentsId: 103, StudentsName: 'Amer' },
{ StudentsId: 104, StudentsName: 'Ahmad' },
{ StudentsId: 105, StudentsName: 'Fadi' }
];
}

get getAllStudents() {
return null;
}
getStudentById(_studentsId) {
return this.allStudents.filter(x => x.StudentsId === _studentsId);
}
set addStudent(_student) {

}


}

我不知道为什么会发生这个错误。我需要一些帮助来解决这个问题。

我如何在students类中使用这个接口(interface)?请检查接口(interface)IStudents如下:

interface IStudents {
name: string,
age: number,
active:boolean
};

最佳答案

我不明白为什么您需要 Students 的递归结构,因此使用您感兴趣的属性定义一个 Student 并引用它。它可以是类、接口(interface)或类型。

下面的示例将学生学生列表分开,您可能需要更改名称以使其更加明确。

interface Student {
StudentsId: number;
StudentsName: string;
}

class Students {
public StudentsId: number;
public StudentsName: string;
public allStudents: Student[] = [];

constructor() {
this.allStudents = [
{ StudentsId: 100, StudentsName: 'Mahmoud'},
{ StudentsId: 101, StudentsName: 'Sami' },
{ StudentsId: 102, StudentsName: 'Osama' },
{ StudentsId: 103, StudentsName: 'Amer' },
{ StudentsId: 104, StudentsName: 'Ahmad' },
{ StudentsId: 105, StudentsName: 'Fadi' }
];
}

get getAllStudents() {
return null;
}

getStudentById(_studentsId) {
return this.allStudents.filter(x => x.StudentsId === _studentsId);
}

set addStudent(_student) {

}
}

学生的层次结构

如果你确实需要学生的层次结构,你可以这样实现:

class Students {
public subStudents: Students[] = [];

constructor(public StudentsId: number, public StudentsName: string) {
this.subStudents = [
new Students(100, 'Mahmoud'),
new Students(101, 'Sami'),
new Students(102, 'Osama'),
new Students(103, 'Amer'),
new Students(104, 'Ahmad'),
new Students(105, 'Fadi'),
];
}

get getAllStudents() {
return null;
}
getStudentById(_studentsId) {
return this.subStudents.filter(x => x.StudentsId === _studentsId);
}
set addStudent(_student) {

}
}

数组类型的可选性

我在两个代码示例中都表达了我的观点:空数组是不可取的。您可以将其设置为非可选并将其实例化为空数组,这样就无需在使用前对数组进行 null 检查。

关于javascript - typescript - 不可分配给打字学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53061120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com