Автоконвертация числа в строку при машинописании при создании объекта - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть функция общего вида, которая принимает поля (свойства класса) и создает из них запрос POST.

код выглядит примерно так:

public state: number;

updateField(field: string | number, name: string, team: boolean = true) {
  this.http.post('/update_key', {
        [path]: { [name]: field }
  })
}

Здесь path - это переменная с путем к файербазу, например /ipl_data/match_info/current_match

Я называю это как this.updateField(this.state, 'state', false);

Когда этот запрос отправляется, тело запроса создается как:

{
  "/ipl_data/match_info/current_match": {
    "state":"3"
  }          ^------ this should be a number since type was defined as number
}

Есть ли способ справиться с этой ситуацией?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Скорее всего, ваши this.state === "3" в первую очередь. Проверьте место, где this.state было присвоено значение.

Это скорее проблема "javascript", чем проблема "машинописи". Вы должны понимать, что машинописный текст оказывает ноль влияние на поведение вашего кода во время выполнения, он работает только в вашей IDE и при компиляции кода.

0 голосов
/ 08 апреля 2019

Я бы попробовал что-то вроде:

updateField(field: string | number, name: string, team: boolean = true) {
  this.http.post('/update_key', {
        [path]: { [name]: !isNaN(field) ? +field : field }
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...