Skip to content

Commit caef39f

Browse files
authored
Merge pull request #776 from kabrunko-dev/docs/translate-challenge-4
docs(pt): translate challenge 4
2 parents 70a850e + 63ff390 commit caef39f

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: 🔴 ContextOutlet Tipado
3+
description: Desafio 4 é sobre tipagem forte em diretivas ngContextOutlet
4+
author: thomas-laforge
5+
contributors:
6+
- tomalaforge
7+
- tomer953
8+
- svenson95
9+
- jdegand
10+
challengeNumber: 4
11+
command: angular-context-outlet-type
12+
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
13+
sidebar:
14+
order: 201
15+
---
16+
17+
## Informação
18+
19+
Você pode melhorar a verificação de tipo do template para diretivas personalizadas adicionando guardas de propriedades de template na definição de sua diretiva. Angular oferece a função estática [`ngTemplateContextGuard`](https://angular.io/guide/structural-directives#typing-the-directives-context) para tipar fortemente diretivas estruturais.
20+
21+
No entanto, o contexto do tipo do **NgTemplateOutlet** é **Object**. Mas com a a ajuda do guarda acima, podemos melhorar esse comportamento.
22+
23+
## Declaração
24+
25+
Neste exercício, queremos aprender como tipar fortemente nosso `ng-template` no `AppComponent`.
26+
27+
Este exercício tem dois níveis de complexidade.
28+
29+
### Nível 1: Interface Conhecida
30+
31+
Atualmente nós temos o seguinte trecho de código.
32+
33+
![Unkown Person](../../../../../assets/4/unknown-person.png 'Unkown Person')
34+
35+
Como podemos ver, `name` é do tipo `any`. Queremos inferir o tipo correto usando a diretiva personalizada `PersonDirective`.
36+
37+
### Level 2: Interface Genérica
38+
39+
No momento presente, temos o seguinte trecho de código.
40+
41+
![Unkown Student](../../../../../assets/4/unknown-student.png 'Unkown Student')
42+
43+
Como podemos ver, `student` é do tipo `any`. Queremos inferir o tipo correto usando a diretiva personalizada `ListDirective`.
44+
45+
Mas nesta parte, queremos passar uma lista de **qualquer objeto** para `LPersonistComponent`. E também queremos que o tipo correto seja inferido.

0 commit comments

Comments
 (0)