Cenário: tipar um componente Select genérico
Pergunta
Você precisa criar um componente `<Select>` reutilizável que funcione tipado para qualquer lista de opções (strings, números, objetos). Como modelaria os tipos com generics?
Resposta esperada
Declare o componente com um parâmetro de tipo genérico, ex: `function Select<T>(props: { options: T[]; value: T; onChange: (value: T) => void; getLabel: (option: T) => string })`. O generic `T` é inferido automaticamter pelo TypeScript a partir do array `options` passado, então o consumidor do componente recebe autocompletar e checagem de tipo corretos sem precisar declarar o tipo manualmente. `getLabel` resolve o problema de exibir um rótulo legível quando `T` não é uma string simples (ex: um objeto `{ id, name }`).
Por que perguntam isso
Testa se o candidato usa generics para modelar reuso real, não apenas para satisfazer o compilador — a inferência automática a partir de `options` é o detalhe que mostra domínio.