Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2023
Programação›Linguagens de programação
Código
ce163367
Banca
CESPE / CEBRASPE
Órgão
TBG
Ano
2023
Nível
Superior
Cargo
Ênfase: Desenvolvimento de Software
Em relação ao código precedente, julgue o item seguinte.Considerando-se que o código apresentado é voltado para o Angular com Typescript, é correto afirmar que @Component é um método da classe de AppComponent.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Angular: decorators e classes
Gabarito: letra E (ERRADO). A afirmação está incorreta porque @Component não é um método da classe AppComponent, mas sim um decorator (decorador) — uma função que recebe um objeto de configuração e é aplicada à classe para transformá-la em um componente Angular. O decorator é uma característica do TypeScript, não um método da classe.
O Angular é um framework front-end baseado em componentes. Cada componente é uma classe TypeScript decorada com @Component, que fornece metadados como selector, template ou templateUrl, styles etc. O decorator é uma função que recebe um objeto de configuração e é aplicada à classe para transformá-la em um componente Angular. O decorator é uma característica do TypeScript, não um método da classe.
Na prática, quando você escreve:
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {}
O @Component é um decorator que "anota" a classe AppComponent. Ele não é um método da classe — métodos são funções definidas dentro do corpo da classe, como ngOnInit(), onClick(), etc. O decorator é aplicado sobre a classe, antes dela ser definida, e o Angular o utiliza para registrar o componente no framework.
A distinção é fundamental: decorators são funções que modificam ou anotam classes, métodos, propriedades ou parâmetros; métodos são funções que pertencem a uma classe e podem ser chamadas em instâncias dela. No caso do Angular, @Component é um decorator de classe, enquanto métodos seriam, por exemplo, ngOnInit(), ngOnDestroy(), ou qualquer função definida dentro da classe.
A banca explora exatamente essa confusão: o candidato que não domina o conceito de decorator pode pensar que @Component é um método da classe, quando na verdade é um recurso do TypeScript que o Angular usa para configurar componentes. Essa é uma pegadinha clássica em questões de Angular.
Guarde a fronteira: decorator ≠ método. O decorator é aplicado à classe (ou a membros dela) e fornece metadados; o método é uma função que a classe pode executar. É exatamente nessa distinção que a questão se resolve.
Angular: decorator × método: Decorator (@Component) (Função que anota a classe, Fornece metadados (selector, template), Recurso do TypeScript); Método (ngOnInit, onClick) (Função dentro da classe, Chamado em instâncias); @Component (Aplicado sobre a classe, Transforma em componente Angular)
Alternativa E — ❌ Errado ⟵ GABARITO
A afirmação está errada. @Component é um decorator do TypeScript, não um método da classe AppComponent. O decorator é uma função que recebe um objeto de configuração e é aplicada à classe para transformá-la em um componente Angular. O decorator é uma característica do TypeScript, não um método da classe.
PEGA ESSA DICA!
Para não errar em questões de Angular, lembre-se: @Component, @NgModule, @Injectable, @Directive, @Pipe são decorators — eles anotam classes e fornecem metadados ao framework. Métodos, por outro lado, são funções definidas dentro da classe, como ngOnInit(), ngOnDestroy(), onClick(). Se a alternativa disser que um decorator é um método, está errada.