Левая часть арифметической операции должна иметь тип 'any', 'number' или тип enum. Не могу объявить номер как номер - PullRequest
0 голосов
/ 11 января 2019

У меня есть массив объектов

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' или тип enum." Я знаю, что это потому, что мой dateOfJoining - «Число», а не «Число».

Но я не могу написать это как «число», потому что тогда я получаю ошибку «« число »относится только к типу, но используется здесь как значение».

1 Ответ

0 голосов
/ 11 января 2019

Number - конструктор для числового типа JavaScript. Это не то значение, которое вы намереваетесь.

interface Student {
  rollNo: number;
  name: string;
  dateOfJoining: number;
}

student: Student[] = [{
  ...
}];

Обратите внимание, что для этого потребуется значение по умолчанию для student, но также будет работать пустой массив, например,

student = Student[] = [];
student.push({ rollNo: 1, name: 'Andrew', dateOfJoining: 2 });

На этом этапе вам нужно будет заполнить student фактическими значениями, которые должны быть числами и строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...