Questão nº 42
Questão de Tecnologia da Informação · FCC TRT4 2022 (nº 42)
Uma declaração de variável de tipo união, válida em Typescript, é
- A`let v:(number|string) = 924;` (alternativa correta)
- B`let v:[number, string] => [123,"Tribunal"];`
- C`let v: string <=> null = 123;`
- D`var v:[x=1, y="Tribunal"];`
- E`var v:(x:number, y:string) => 145;`
Resposta comentada
Gabarito Alternativa A
Uma união de tipos (union type) em TypeScript permite que uma variável possa armazenar valores de diferentes tipos, como um número OU uma string, usando o símbolo `|` (pipe) para separar os tipos possíveis.
(A) Correta: `let v:(number|string) = 924;` - Esta é uma declaração válida de união de tipos. A variável `v` é declarada para aceitar valores do tipo `number` ou `string`. O valor `924` é do tipo `number`, que é um dos tipos permitidos na união, tornando a atribuição válida.
(B) Incorreta: `let v:[number, string] => [123,"Tribunal"];` - Esta sintaxe está incorreta. Embora `[number, string]` seja um tipo tupla (um array com tipos e ordem fixos), o operador `=>` é usado para definir o tipo de retorno de uma função, e a parte `[123,"Tribunal"]` é um valor literal, não uma declaração de tipo ou corpo de função. A armadilha aqui é que `[number, string]` é um tipo válido em TypeScript (tupla), o que pode confundir o aluno, mas o restante da sintaxe está gramaticalmente incorreto para qualquer tipo de declaração de variável.
(C) Incorreta: `let v: string <=> null = 123;` - O operador `<=>` não é um operador válido para declaração de tipos em TypeScript.
(D) Incorreta: `var v:[x=1, y="Tribunal"];` - Esta sintaxe não é uma declaração de tipo válida em TypeScript. Ela tenta combinar uma inicialização de array/tupla com atribuições de propriedades nomeadas de forma incorreta.
(E) Incorreta: `var v:(x:number, y:string) => 145;` - Esta sintaxe se assemelha à declaração de um tipo de função (que recebe `x` como `number` e `y` como `string`), mas o `145` no final é um valor literal, não um tipo de retorno válido para a função. Deveria ser um tipo, como `number`, para ser uma declaração de tipo de função.
Fonte: FCC TRT4 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.