При строгой проверке нуля любая функция, которая возвращает что-то, что может быть «не найдено», должна иметь тип возвращаемого значения, объявленный как Something | undefined
, и она должна возвращать значение undefined
в случае «не найдено».
Также возможно использовать null
вместо undefined
, как в качестве типа, так и в качестве возвращаемого значения, но выбор был сделан, и система типов TypeScript использует undefined
, а не null
для представления неинициализированных и необязательных значений - например, тип необязательного свойства (объявленного со знаком ?
): T | undefined
.
См. Также эту цитату упомянуто пользователем cale_b в комментариях:
рациональным является то, что JavaScript имеет две концепции для обозначения пустого
Значение часового, у большинства других языков программирования есть только один.
Кроме того, неопределенное присутствует всегда, так как все неинициализированные значения
иметь значение undefined во время выполнения. с другой стороны, нуль
можно избежать, особенно если вы не используете API, которые его производят,
например DOM, который не использует компилятор TypeScript.