Тип \"string\" не может быть назначен для типа \"number\"
Из заголовка казалось бы сразу становится понятно почему возникает ошибка в моем TypeScript скрипте. Но..
Ошибка возникает когда пробую такую конструкцию после добавления ".toFixed(2)":
topprice = openOrders[item].price.toFixed(2)
также пробовал
topprice = Number(openOrders[item].price).toFixed(2)
Вывод кода:
let topprice = 0, topsize = 0, lowprice=0, lowsize=0
console.log(typeof topprice,' ',topprice,' ',typeof openOrders[item].price,' ',openOrders[item].price)
Даёт результат:
То есть получается что типы в обоих случаях - Number
Конструкция openOrders[item] имеет следующий вид одного элемента:
У меня не получается понять в чем проблема, особенно учитывая что оба типа переменных к которым обращаюсь - Number.
Ответы (1 шт):
Решение было простым, вместо:
topprice = openOrders[item].price.toFixed(2)
topprice = Number(openOrders[item].price).toFixed(2)
Пишем:
topprice = Number(openOrders[item].price.toFixed(2))
Так как первые две строки - идентичны.
openOrders[item].price- число, но после конвертацииtoFixed- становится строкой- число конвертируется в число и в конце конвертируется
toFixedв строку
Поэтому правильно решение все выражение (которое будет в итоге строкой) поместить полностью в функцию Number(...).
И по итогу число, которое мы пытаемся обрезать toFixed сначала конвертируется из числа в строку, а потом мы его обратно конвертируем в число.

