DEV Community

Cover image for TypeScript: Any vs Unknown
Luís Von Muller
Luís Von Muller

Posted on

TypeScript: Any vs Unknown

Se você acabou de chegar no mundão do TypeScript, aqui está um conteúdo essencial, onde diferencia a ideia de 2 tipos primitivos. E também o porquê de que se você sair usando arbitrariamente any você não está realmente usando o TypeScript e deveria fazer apenas fazer em JavaScript...

Vamos pegar um exemplo bem simples e a partir dele debater a ideia.

let fulano: any = "João";
let ciclado: unknown = "Augusto"
Enter fullscreen mode Exit fullscreen mode

Ao tipar a variável "Fulano" com any, nós literalmentes dizemos para o Transpilador/Compilador do Typescript que ela é literalmente: Qualquer coisa.

Por exemplo, para ele, o seguinte código seria totalmente válido.

fulano.funcao(); 
Enter fullscreen mode Exit fullscreen mode

Todavia, não existe essa função em fulano. Logo, em tempo de execução, isto é: em runtime, nos retornaria um erro (ou seja, ia dar merda).
(ノಠ益ಠ)ノ彡┻━┻

Já com o "Unknown" o negócio é diferente, a gente usa o propósito mor do TypeScript: Type Safety (Segurança de Tipos ante execução).

ciclado.funcao();
Enter fullscreen mode Exit fullscreen mode

Typescript error because of a calling on a unkown

Ou seja, o Transpilador/Compilador do Typescript não vai deixar esse código realmente deixar ser executado, porque, o sistemas de tipo não é capaz de garantir que realmente haja essa função dentro de ciclano.

Simples né? ¯_(ツ)_/¯

Vem pro meu twitter & muito mais: https://allmylinks.com/luisvonmuller

Aqui tem mais conteúdo sobre TypeScript em PT-BR: https://luisvonmuller.gitbook.io/typescript-para-brasileiros/

Beijão (っ˘з(˘⌣˘ )

Discussion (7)

Collapse
hgoulart profile image
Hingo Rocha

Legal.

Collapse
abhj profile image
Abhijay Mitra

Dev can't support translation? You can always translate pages in chrome by right clicking on the screen.

Collapse
pekosong profile image
Peko

nice

Collapse
punisher49 profile image
punisher49

Non English post? Who is going to read it?

Collapse
luisvonmuller profile image
Luís Von Muller Author • Edited on

Want me to explain? lerigo... There are not a lot of Brazilians that are able to understand English.
My focus is making content accessible to Brazilians, by writing it in "Brazilian", Because? I'm just doing it for them, and by them.
So you do have 2 options by now: Get this content from some another source (or just translate it with your browser), or you can learn Portuguese as well I've learnt English. :D

Collapse
ronaldohoch profile image
Ronaldo Hoch

Some people from Brazil, Mozambique, Angola, Guinea Bissau, Equatorial Guinea, Cape Green, Sao Tome and Principe, Portugal, East Timor and Macao xD