Typescript Array - PullRequest
       7

Typescript Array

0 голосов
/ 27 апреля 2018

У меня есть этот массив

numbers1: any=[
               { lat: 43.477254, lng: -3.780953 },
               { lat: 43.472739, lng: -3.781039 },
               { lat: 43.472498, lng: -3.780164 },
               { lat: 43.472023, lng: -3.780363 }
              ];

Я хочу заполнить этот массив динамически, и я получил его следующим образом:

list:any[]=[];

polygon(event){
   this.list = [event.coords.lat, event.coords.lng];
   this.number.push(this.list);}

Но как мне установить значения, используя структуру Array number1?

{lat: value, lng: value},

Я пробовал это, но у меня нет этого. И извините, кстати, я новичок в этом.

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Вы пытаетесь выдвинуть массив, а не объект. И выше у вас есть массив с именем numbers1, и вы вводите число. Используйте правильный

Попробуйте это:

list:any={};

polygon(event)
{
   this.list = {lat: event.coords.lat, lng: event.coords.lng};
   this.number.push(this.list);
}
0 голосов
/ 27 апреля 2018

Ваш код ссылается на 3 различных массива: this.numbers1, this.list и this.number. Мне не ясно, является ли это намеренным различием, но кажется то, что вы пытаетесь сделать, примерно так:

// describe what the arrays contain
type Coord = { lat: number; lng: number; }

// define the array of those coords, initialize empty
numbers: Coord[] = [];

polygon(event){
   // push the next coord (this will be type-checked)
   this.numbers.push({ lat: event.coord.lat, lng: event.coord.lng });
}

Обратите внимание, что при использовании пользовательского типа Coord вместо any компилятор поможет вам в том, что вы пытаетесь сделать. Например, это будет ошибка:

this.numbers.push([event.coord.lat, event.coord.lng]);

Компилируется с ошибкой:

Error:
  Argument of type 'any[]' is not assignable to parameter of type 'Coord'.
    Property 'lat' is missing in type 'any[]'.
0 голосов
/ 27 апреля 2018

Я думаю, что вы хотите push объект, а не массив:

this.list = {
    lat: event.coords.lat,
    lng: event.coords.lng
};

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