javascript - 打字稿 - 不可分配给学生打字
问题描述
我在构造函数中有错误>>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
?请查看如下界面IStudents
:
interface IStudents {
name: string,
age: number,
active:boolean
};
解决方案
我不明白为什么你需要一个递归结构Students
,所以用你感兴趣的属性定义 aStudent
并引用它。它可以是类、接口或类型。
下面的示例将Student
与 的列表分开Students
,您可能需要更改名称以使其更明确。
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) {
}
}
数组类型的可选性
我在两个代码示例中都表达了我认为空数组是不可取的观点。您可以将其设为非可选并将其实例化为空数组,这样就无需在使用前对数组进行空值检查。
推荐阅读
- javascript - 欧芹验证器中带有输入键的下一步按钮
- python - Python,使用字典的高效并行操作
- asp.net-core - 如何按实现类型解析服务?
- java - 池中没有可用的连接,netstat 在 Recv-Q 中显示非零值
- ios - tableView 重新加载时崩溃
- driver - 检测并阻止来自驱动程序的 Read/WriteProcessMemory 调用
- dart - built_value 反序列化得到错误“类型'_InternalLinkedHashMap
' 不是类型 'Iterable 的子类型 ' 在类型转换中" - python - 如何在python片段中获取受MERGE查询影响的结果/反馈/行数/行数
- qualcomm - 一切尽在 qualcomm cdb20
- javascript - 深层链接到另一个应用程序,然后回调到同一个浏览器