установить тип любого из свойств объекта JavaScript - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующий объект javascript

 venue = {
    id: 0,
    name: '',
    venueimage_set: [
      {
        imageurl: '',
      },

    ]...

, затем в моем коде я изменяю объект:

 this.venue.venueimage_set[+image] = this.venue.venueimage_set[+image].imageurl;

, чтобы программа просмотра изображений работала Мне нужен URL-адрес изображениятолько не ключ, частью которого является URL-адрес изображения.Поэтому я беру то, что в ключе, и устанавливаю позицию массива в значение ключа, URL-адрес изображения.

, тогда я получаю этот шум.

ERROR in mainroot/venuepage/venuepage.component.ts(171,25): error TS2322: Type 'string' is not assignable to type '{ imageurl: string; }'. mainroot/venuepage/venuepage.component.ts(175,127): error TS2339: Property 'imageurl' does not exist on type 'string'.

Я быкак машинопись, чтобы игнорировать набор текста и просто позвольте мне сделать это.Как бы я?

1 Ответ

0 голосов
/ 31 мая 2018

Вот типизированная версия того, что вы пытаетесь сделать:

function toVenue<T>({id, name, venueimage_set}: T) {
  return {
    id,
    name,
    venueImageSet: venueimage_set.map(el => el.imageurl)
  };
}

, которую можно использовать при настройке venue:

const venue = toVenue({
    id: 0,
    name: '',
    venueimage_set: [{
       imageurl: '',
    }]
});

А здесьнебезопасная версия (пожалуйста, не делайте этого):

this.venue.venueimage_set[+image] = this.venue.venueimage_set[+image].imageurl as any;
...