Optional chaining ?.#146
Conversation
dolgachio
left a comment
There was a problem hiding this comment.
Дякую за чудовий переклад!
Будь-ласка, подивіться мої коментарі і пропозиції.
Деякі з них обов'язково потрібно виправити (друкарські помилки), інші після того, як пулл реквест подивиться
@tarasyyyk ;)
There was a problem hiding this comment.
| Опціональний ланцюжок `?.` - це безпечний спосіб доступу до влатсивостей об'єктів з вкладеностями, навіть якщо проміжних властивостей не існує. | |
| Опціональний ланцюжок `?.` -- це безпечний спосіб доступу до вкладених властивостей об'єктів, навіть якщо проміжних властивостей не існує. |
There was a problem hiding this comment.
| Отож якщо користувач не вказав адресу, а ми в свою чергу намагаємось отримати доступ до властивості `user.address.street` отримаємо помилку. | |
| Отож якщо користувач не вказав адресу, а ми в свою чергу спробуємо отримати доступ до властивості `user.address.street`, то отримаємо помилку. |
There was a problem hiding this comment.
| Проте в багатьох життєвих ситуаціях було б набагато зручніше отримати просто `undefined` ("немає вулиці"). | |
| Проте в багатьох життєвих ситуаціях було б набагато зручніше отримати просто `undefined`, що буде означати "немає вулиці". |
There was a problem hiding this comment.
| Ще один приклад. У веб розробці ми можемо отримати об'єкт котрий відповідає елементу на веб сторінці за допомогою стеціальних методів, наприклад: `document.querySelector('.elem')`. Проте якщо ми намагатимось отримати елемент якого немає на сторінці, то нам вернеться `null`. | |
| Ще один приклад. У веб розробці ми можемо отримати об'єкт котрий відповідає елементу на веб сторінці за допомогою спеціальних методів, наприклад: `document.querySelector('.elem')`. Проте якщо ми намагатимось отримати елемент якого немає на сторінці, то нам вернеться `null`. |
There was a problem hiding this comment.
| let html = document.querySelector('.elem').innerHTML; // помилка осткільки null | |
| let html = document.querySelector('.elem').innerHTML; // помилка оскільки null |
There was a problem hiding this comment.
| let user2 = null; // уявимо що користувач не авторизувався | |
| let user2 = null; // уявімо, що користувач не авторизувався |
There was a problem hiding this comment.
| delete user?.name; // видалити user.name якщо користувач існує | |
| delete user?.name; // видалити user.name, якщо користувач існує |
There was a problem hiding this comment.
| Опціональний ланцюжок `?.` не має сенсу лівій частині просвоювання. | |
| Опціональний ланцюжок `?.` не має сенсу у лівій частині просвоювання. |
There was a problem hiding this comment.
| Тим не менш, потрібно розумно застосовувати `?.`, тільки в тих випах де допустимо що ліва частина не існує. Щоб таким чином не приховувати потенційні помилки програмування. | |
| Тим не менш, потрібно розумно застосовувати `?.`, тільки в тих випадках де допустимо що ліва частина не існує. Щоб таким чином не приховувати потенційні помилки програмування. |
|
@stas-dolgachov дякую за коментарі, все поправив |
|
@all-contributors add @didostap for translation |
|
I've put up a pull request to add @didostap! 🎉 |
|
@all-contributors add @stas-dolgachov for review |
|
I've put up a pull request to add @stas-dolgachov! 🎉 |
No description provided.