Приведение объекта Typescript к классу без учета свойств - PullRequest
0 голосов
/ 10 марта 2020

У меня есть объект, который я пытаюсь привести из моего вызова webapi.

Итак, допустим, это данные из webapi

let userTestStatus: { id: number, name: string }[] = [
    { "id": 0, "name": "Available", "date" : "01/01/2001" },
    { "id": 1, "name": "Ready", "date" : "01/01/2001" },
    { "id": 2, "name": "Started", "date" : "01/01/2001" }
];

Это мой класс машинописного текста. Как видите, свойство даты отсутствует

export myClass{
  id: number;
   name: string;
}

Когда объект конвертируется, свойство даты присутствует, хотя его нет в моем классе. Как я могу получить машинопись, чтобы игнорировать свойства, которые не существуют в классе?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Вы можете сопоставить все свои объекты именно с такой моделью, которую хотели бы иметь

const myModelObejctsArray: MyModel[] = userTestStatus.map(user => {
   return {
    id: user.id,
    name: user.name
   }
})
0 голосов
/ 10 марта 2020

Ваши данные соответствуют заданному типу интерфейса. Однако ваши данные имеют даже больше свойств, чем вы объявили типом.

В вашей IDE Typescript должно отображаться сообщение о том, что объекты в вашем массиве не имеют свойства date. Но вы все равно можете запустить его.

Если вы не хотите использовать свойство date в элементах массива, вы можете удалить его самостоятельно:

userTestStatus.forEach(e => delete e.date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...