Fale sobre uma aplicação fullstack em Node.js/Express para automatizar a personalização das páginas de pagamento.
Frontend
Tarefa 6: Escreva uma função genérica que aceite um objeto com uma propriedade obrigatória chamada name do tipo string e retorne uma string com o nome da entidade.
Qual é a diferença entre any e unknown no TypeScript? Por que o linter não reclama de any, mas exige restrição de tipo para unknown?
Como trabalhou com Git: qual era o fluxo de branching, como faziam releases, como faziam hotfixes?
/** * Tarefa 4: Transformar o tipo dado `MaybeProps` para tornar todas as suas propriedades obrigatórias. */ type MaybeProps = { a?: number; b?: string; };
Tarefa 7: Existem tipos Alien e Human, combinados no tipo Person. Escreva uma função checkAlien que verifica se a Person passada é um alienígena. Corrija o erro do TypeScript ao acessar a propriedade isAlien.
Tarefa 2: Dadas várias declarações de interface Todo abaixo, explique o que acontece quando elas estão presentes no mesmo escopo. Discuta como o TypeScript as trata e preencha o objeto `myTodo` para satisfazer os requisitos da interface Todo mesclada. ```typescript interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; } interface Todo { priority: 'high' | 'medium' | 'low'; completed: string; } const myTodo: Todo = {}; ```
Tiveste alguma experiência negativa numa equipa, como discussões intensas na revisão de código? Como agirias numa situação dessas?
/** * Tarefa 3: Analise a função abaixo e corrija quaisquer erros. Explique o papel do tipo `never` em TypeScript. */ function throwError(): never { throw new Error('Ocorreu um erro'); } /** * Tarefa 4: Transforme o tipo dado `MaybeProps` para tornar todas as suas propriedades obrigatórias. */ type MaybeProps = { a?: number; b?: string; }; /** * Tarefa 5: Crie um tipo genérico `Container` que contenha uma única propriedade `value`. * O tipo de `value` deve ser restrito a `string` ou `number`. */ type Container<T> = { value: T; };
Fale sobre o uso do Astro: como foi escolhido, como gerenciam o conteúdo?
/** * Tarefa 1: Genéricos e Segurança de Tipo na Chave * Crie uma função `getProperty` que recebe um objeto e uma chave. * Use genéricos para garantir que a função seja segura em termos de tipo, e que a chave exista no objeto. */ function getProperty<T extends Record<string, unknown>, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; } getProperty('str', 'toString') /** * Tarefa 2: Dado múltiplas declarações de interface Todo abaixo, explique o que acontece quando elas estão presentes no mesmo escopo. * Discuta como o TypeScript as trata e preencha o objeto `myTodo` para satisfazer os requisitos da interface Todo mesclada. */ interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; }
Fale sobre autenticação baseada em cookies e autorização de dois fatores no painel de usuário.
Por que decidiu procurar emprego e por que na nossa empresa?