Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Content/3-Conteudo-Principal/OptionalChaining.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Optional Chaining

---
O Optional Chaining é um operador que permite fazer a verificação de um objeto de uma maneira mais curta/simples, somente adicionando um ``?.`` antes de acessar a propriedade a ser testada.

Por exemplo:

```typescript
const person = {
firstName: 'Marcio',
lastName: 'Rodrigues',
animals: {
dog: 'Eros',
cat: 'Felicia'
},
company:
}


const dogName = person.animals?.dog;
const companyName = person?.company;
```

No exemplo acima, criamos um objeto ``person`` que recebeu as características demonstradas acima. Abaixo foram criadas duas constantes que recebem o nome do cachorro e o nome da empresa em que ele trabalha, essas constantes podem ser usadas para o que o usuário bem queira, o optional chaining facilita a nossa vida porque, caso o objeto não tenha uma das propriedades chamadas, ele retornará `undefined ` e não um erro de referencia, parando assim a execução do nosso programa.

Por exemplo:

```typescript
console.log(dogName)
console.log(companyName)

```

No caso do primeiro console.log, ele retornará `'Eros'` porque é o nome atribuído a `dog` e no caso do segundo onde queremos mostrar o `companyName` ele retornará `undefined` e não irá parar o programa, ele simplesmente irá dar um "curto-circuito" e vai retornar `undefined` mas sem ser um erro de referência, assim fazendo nosso programa continuar a executar.

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ Todos os exemplos citados nesse artigo podem ser testados no [playground online
4. [Type e Interfaces](/Content/3-Conteudo-Principal/Type-e-Interfaces.md)

5. [Generics](/Content/3-Conteudo-Principal/Generics.md)

6. [Optional Chaining](/Content/3-Conteudo-Principal/OptionalChaining.md)

# Como Contribuir com o 4noobs

Expand Down