Если предположить, что весь код является машинописным и скомпилирован с помощью машинописного текста, а значение any
не задействовано, то эта проверка существования не имеет смысла.
Однако, как указывают другие комментаторы, если какой-либо код прост javascript или в виде библиотеки для использования в неизвестных кодовых базах или средах безопасность типов не может быть гарантирована. Так что разработчик должен решить сделать двойные проверки.
Но вот несколько способов, которые все еще могут быть хороши, написав это таким образом:
- нетипичный вызывающий абонент
// foo.js
employee.fullName = null // not typescript so no error.
тип
any
может быть передан в
// foo.ts
const jsonData: any = { employees: [{ fullName: null }] } // data from a remote api
// no error because `any` be cast to any other type without error.
employee.fullName = jsonData.employees[0].fullName is any.
Проверка существования защитит от ошибки, возникающей в обоих этих случаях. Однако следующая строка в любом случае присвоит неверное значение ...
Я бы сказал, что в качестве примера в документах по машинописи проверки существования, вероятно, не должно быть, поскольку это немного сбивает с толку.