我有一个对象数组
student = [{
rollNo: Number,
name: String,
dateOfJoining: Number
}];
现在我尝试使用此代码对函数内的数组进行排序。
students(){
for( let item of res.data){
this.event.push({
name: item.name,
rollNo: item.rollNO,
date: item.joining,
});
}
this.student.sort((val1, val2) => {return val2.dateOfJoining - val1.dateOfJoining});
}
但我收到错误“算术运算的左侧必须是‘any’、‘number’或枚举类型类型。” 我知道这是因为我的 dateOfJoining 是“Number”而不是“number”。
但我不能将其写为“数字”,因为这样我会收到错误““数字”仅指类型,但在这里被用作值。”
最佳答案
Number
是 JavaScript 数字类型的构造函数。这不是您想要的值。
interface Student {
rollNo: number;
name: string;
dateOfJoining: number;
}
student: Student[] = [{
...
}];
请注意,这需要 student
的默认值,但空数组也可以使用,例如
student = Student[] = [];
student.push({ rollNo: 1, name: 'Andrew', dateOfJoining: 2 });
此时,您必须在 student
中填写实际值,该值应该是数字和字符串。
关于javascript - 算术运算的左侧必须是类型 'any' 、 'number' 或枚举类型。无法将 Number 声明为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54148540/