~/questoes/programacao
Uma Interface em TypeScript é um contrato que define quais propriedades e métodos um objeto deve ter. Ela funciona como um molde ou blueprint que garante que objetos criados a partir dela seguem uma estrutura consistente, tornando o código mais previsível e fácil de manter.
A alternativa D está correta porque interfaces realmente definem um contrato especificando propriedades e métodos obrigatórios. Quando você cria uma interface, qualquer objeto que a implementar deve ter exatamente aqueles atributos e funções, garantindo consistência e segurança de tipos.
Esta alternativa descreve uma função de validação ou transformação, não uma interface. Interfaces não fazem validações automáticas de arrays; elas apenas definem a estrutura esperada de um objeto.
Embora interfaces possam ser armazenadas em arquivos separados, essa não é sua definição. Uma interface não é um arquivo externo, mas sim uma construção da linguagem que pode estar em qualquer arquivo do projeto.
Essa descrição mistura interfaces com classes abstratas. Classes abstratas são estruturas que usam herança e podem ter implementações; interfaces são apenas contratos que definem o que deve existir, sem implementação.
Essa é a definição correta. Uma interface estabelece um contrato que diz: 'qualquer objeto que implemente essa interface deve ter estas propriedades e métodos com estes tipos específicos'.