Ответ 1
Оператор void
всегда оценивает как значение undefined.
Переменная undefined
, которая по умолчанию имеет значение undefined, может быть перезаписана.
TypeScript преобразует определенный код в это:
Animal.prototype.move = function (distanceInMeters) {
if (distanceInMeters === void 0) { distanceInMeters = 0; }
...
Что void 0
? Это тот же трюк, что и для ссылок void(0)
? Почему вместо undefined
не используется?
Оператор void
всегда оценивает как значение undefined.
Переменная undefined
, которая по умолчанию имеет значение undefined, может быть перезаписана.
Оператор void вычисляет данное выражение и возвращает undefined.
Оператор void часто используется просто для получения примитивного значения undefined, обычно используя "void (0)" (что эквивалентно "void 0" ). В этих случаях вместо него может использоваться глобальная переменная undefined (при условии, что ей не присвоено значение, отличное от значения по умолчанию).