Почему Typescript выдает ошибку преобразования при попытке выполнить операцию, используя результат функции? - PullRequest
1 голос
/ 26 марта 2019

Я пытаюсь понять, почему Typescript выдает ошибку преобразования типов n, когда я использую результаты функции как часть арифметической операции.

Это, вероятно, иллюстрирует то, что я пытаюсь сказать.

let foo = ():number => 5
let bar = ():number => 2
let operation = ():number => foo/bar; // The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
let baz = foo()
let qux = bar()
let otherOperation = ():number => baz/qux; // no compilation errors

Так как foo и bar возвращают тип number, я бы предположил, что их значения можно использовать как часть арифметической операции. Почему это не так? И как это исправить?

1 Ответ

1 голос
/ 26 марта 2019

Это не ошибка.

foo и bar являются функциями , которые возвращают число. Они сами не числа.

foo/bar не компилируется, поскольку не может иметь числового значения! Это было бы как, скажем, деление квадратного корня на логарифм. Не имеет смысла делать арифметику для самих функций .

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