TypeScript: conhecendo o type never
Em uma das versões anteriores do TypeScript foi adicionado um type chamando never. Esse type indica que algo nunca deve ocorrer.

Em uma das versões anteriores do TypeScript↳TypeScript23 conteúdosTypeScript: ReadonlyArrayDev (Back & Front) · jun 2019Onde usar ANY no TypeScriptDev (Back & Front) · out 2025Tudo sobre o Node rodar TypeScript nativamente!Dev (Back & Front) · jul 2025Ver tudo em Dev (Back & Front) → foi adicionado um type chamando never. Esse type indica que algo nunca deve ocorrer.
É isso mesmo, nós temos um type no TypeScript chamado never, que indica que uma função nunca deve retornar algo e que é diferente do type void.
Mas calma, vamos entender ele melhor através de alguns exemplos práticos abaixo.
Nós podemos utilizar o type never em funções sem retorno:
function carregandoGame(): never { while (true) { console.log("Carregando todos processos de um game!"); } }Essa função acima é comum no desenvolvimento de games onde nos temos um método que funciona como um loop infinito.
(calma, eu irei explicar mais abaixo a diferença entre never x void)
Em funções com exception
function verificandoTipo(x: string | number): boolean {
if (typeof x === "string") {
return true;
} else if (typeof x === "number") {
return false;
}
return fail("Esse método não aceita esse tipo de type!");
}
function fail(message: string): never { throw new Error(message); }
Testando essa função
verificandoTipo("teste String"); //Ok
verificandoTipo(10); //Ok
let ativo = true;
verificandoTipo(ativo); // retorna uma exceptionPrint do retorno na console:
No exemplo anterior nós temos uma função que recebe um type Union (string e number), que deve retornar um boolean. Caso seja passado um outro valor diferente de string e number, a chamada entra em uma outra função chamada fail que irá retornar uma exception.
Agora, qual é a diferença entre void e never?
O type void pode receber o valor null ou undefined e o type never não pode receber nenhum valor. Abaixo você tem um exemplo demonstrando os os dois types como variáveis:
E para finalizar, quando não especificado um type nas funções do TypeScript, ele retorna um valor undefined. Abaixo você tem um exemplo demonstrando esse cenário:
function teste(): void {
console.log('função void!')
}
let testeFuncaoVoid: void = teste();//função void!
console.log(testeFuncaoVoid); // undefinedBom, a ideia desse artigo era apresentar mais um dos types do TypeScript. Espero que tenham gostado e até a próxima galera 😉







