mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-10 04:43:03 -05:00
Merge pull request #776 from kabrunko-dev/docs/translate-challenge-4
docs(pt): translate challenge 4
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: 🔴 ContextOutlet Tipado
|
||||
description: Desafio 4 é sobre tipagem forte em diretivas ngContextOutlet
|
||||
author: thomas-laforge
|
||||
contributors:
|
||||
- tomalaforge
|
||||
- tomer953
|
||||
- svenson95
|
||||
- jdegand
|
||||
challengeNumber: 4
|
||||
command: angular-context-outlet-type
|
||||
blogLink: https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
|
||||
sidebar:
|
||||
order: 201
|
||||
---
|
||||
|
||||
## Informação
|
||||
|
||||
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.
|
||||
|
||||
No entanto, o contexto do tipo do **NgTemplateOutlet** é **Object**. Mas com a a ajuda do guarda acima, podemos melhorar esse comportamento.
|
||||
|
||||
## Declaração
|
||||
|
||||
Neste exercício, queremos aprender como tipar fortemente nosso `ng-template` no `AppComponent`.
|
||||
|
||||
Este exercício tem dois níveis de complexidade.
|
||||
|
||||
### Nível 1: Interface Conhecida
|
||||
|
||||
Atualmente nós temos o seguinte trecho de código.
|
||||
|
||||

|
||||
|
||||
Como podemos ver, `name` é do tipo `any`. Queremos inferir o tipo correto usando a diretiva personalizada `PersonDirective`.
|
||||
|
||||
### Level 2: Interface Genérica
|
||||
|
||||
No momento presente, temos o seguinte trecho de código.
|
||||
|
||||

|
||||
|
||||
Como podemos ver, `student` é do tipo `any`. Queremos inferir o tipo correto usando a diretiva personalizada `ListDirective`.
|
||||
|
||||
Mas nesta parte, queremos passar uma lista de **qualquer objeto** para `LPersonistComponent`. E também queremos que o tipo correto seja inferido.
|
||||
Reference in New Issue
Block a user