Executando verificação de segurança...
1

Sistemas de Tipos: os três eixos que definem como uma linguagem se comporta

Você já deve ter reparado que JavaScript tem uns comportamentos estranhos, como retornar "53" para a operação "5" + 3, e retornar 2 para uma operação como "5" - 3. Nessa linguagem, o tipo de resultado muda dependendo do operador, sem nenhum aviso.

Não é um bug aleatório, é só como funciona o sistema de tipos da linguagem: ela tenta resolver as operações mesmo quando elas não fazem sentido, e acaba entregando resultados que também não fazem. Isso é o que é chamado de tipagem fraca. Mas o eixo forte/fraca é só um dos três que temos para classificar o sistema de tipos de uma linguagem.

Os três eixos são:

  • Forte ou fraca - a linguagem tolera operações entre tipos incompatíveis?
  • Estática ou dinâmica - os tipos são verificados antes ou durante a execução?
  • Nominal ou estrutural - dois tipos são compatíveis pelo nome ou pela forma?

Escrevi um artigo sobre o que diferencia os sistemas de tipos das linguagens mais populares, com exemplos em TS, Python, Go, e mais, e cobre também ferramentas como mypy, pyright e o combo JSDoc + // @ts-check.

Leia o artigo no meu site: https://isaacmuniz.pro/blog/sistemas-de-tipos

Ah, e se possível, me manda um feedback, tanto sobre o conteúdo quanto sobre a explicação ou escrita.

Carregando publicação patrocinada...
1