• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Front-end
    3. Conhecendo o TypeScript no Front-end

    Conhecendo o TypeScript no Front-end

    8 min8 minutos de leitura

    8 min8 minutos de leitura

    Publicado: 06/12/2023

    1. Desbravando o TypeScript
    2. E na prática, como é usar o TypeScript em um código?
    3. Configurando e compilando seu primeiro projeto TypeScript
    4. Conclusão

    Ah, o maravilhoso mundo do desenvolvimento front-end, que se torna cada vez mais dinâmico graças ao JavaScript. Apesar do JavaScript ser a linguagem mais popular dessa área, também apresenta alguns desafios, como a falta de tipagem estática, a coerção implícita de tipos e a dificuldade de manutenção e escalabilidade do código.

    Pensando nisso, neste artigo, vamos explorar o universo do TypeScript no desenvolvimento front-end, passando pelos tópicos:

    • O que é o TypeScript?
    • Como ele ajuda a garantir que seu código seja legível?
    • Como configurar e compilar o TypeScript?

    Vamos lá! 🙂

    Desbravando o TypeScript

    Imagina essa cena: você está trabalhando em um projeto com uma equipe de pessoas desenvolvedoras front-end, e cada uma de vocês está livre para codificar com o JavaScript à sua maneira. Com o tempo, a diversidade de abordagens começa a gerar erros. A manutenção do código começa a ficar mais complicada e a integração de novos recursos vira um quebra-cabeças.

    Aqui é onde entra o TypeScript, um superconjunto de JavaScript que adiciona sintaxe para tipos. Ele é como ter um co-piloto, que certifica-se de que você não acabe com um código que só você entende. Com ele, as pessoas desenvolvedoras podem escrever códigos mais legíveis, confiáveis e seguros, aproveitando as vantagens do editor e do compilador. Pode ser usado para construir aplicações web usando frameworks JavaScript como Angular, React ou Vue.js.

    Mas por que usar o TypeScript? A resposta é: colaboração e produtividade. Em projetos grandes, onde várias pessoas trabalham em conjunto, a tipagem estática do TypeScript é uma verdadeira bênção. Ela ajuda a evitar erros comuns no JavaScript, como acessar propriedades inexistentes, passar argumentos incorretos ou usar operadores inválidos. Isso significa menos tempo gasto caçando bugs e mais tempo desenvolvendo recursos incríveis.

    Além disso, o TypeScript facilita a leitura do código, fornecendo informações claras sobre os tipos de dados e a estrutura do código. Isso é especialmente valioso quando você retorna a um projeto após algum tempo e precisa entender o que está acontecendo rapidamente.

    Para entender melhor seu diferencial, podemos dizer que o TypeScript é uma linguagem tipada estaticamente, o que significa que os tipos das variáveis, funções e objetos são verificados em tempo de compilação, antes do código ser executado.

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    E na prática, como é usar o TypeScript em um código?

    Imagine um cenário em que você está construindo um sistema de reserva de voos para uma grande companhia aérea. Para isso, você vai precisar guardar os valores do nome, idade e o status do plano de milhas do possível passageiro no momento da reserva. Pode ser que alguém tente enviar o valor de algum desses dados sem ser o tipo esperado e isso gere erros no projeto.

    Caso você esteja usando o TypeScript, ele usa inferência de tipos para atribuir tipos automaticamente às variáveis e funções, sem a necessidade de anotações explícitas. Como, por exemplo:

    let nome = "Maria"; // inferido como string
    let idade = 25; // inferido como number
    let ativo = true; // inferido como boolean
    

    Com o TypeScript, as variáveis, funções e objetos têm tipos definidos, o que elimina muitos dos erros comuns do JavaScript. No exemplo do código, quando você declara uma variável "nome" e atribui a ela o valor "Maria", o TypeScript automaticamente a reconhece como uma string. Isso significa que, se alguém tentar fazer uma operação matemática com ela, o TypeScript vai emitir um alerta, evitando erros sutis e, muitas vezes, difíceis de diagnosticar.

    No entanto, às vezes é necessário especificar os tipos manualmente, para dar mais informações ao compilador e ao editor. Ainda na situação do sistema de reserva de passagens, há a funcionalidade de somar o valor das passagens que serão reservadas. Para isso, poderíamos criar uma função somar, por exemplo:

    function somar(passagemIda: number, passagemVolta: number): number {
      return passagemIda + passagemVolta;
    }
    

    Neste caso, os parâmetros passagemIda e passagemVolta, bem como o retorno da função, são anotados com o tipo “number”, indicando que só podem receber e retornar valores numéricos. Essas anotações não são apenas uma documentação para outros desenvolvedores, mas também uma camada extra de segurança.

    Esse superconjunto também permite definir tipos personalizados, usando interfaces ou tipos alias. As interfaces descrevem a forma dos objetos e funções no código, permitindo visualizar a documentação e identificar problemas no editor.

    Já sabemos que o nosso usuário possui os dados nome, idade e status do plano. Para criar uma interface com esses dados, e construir uma funcionalidade de enviar e-mail para ele, podemos fazer o seguinte:

    interface Usuario {
      nome: string;
      idade: number;
      ativo: boolean;
    }
    function enviarEmail(usuario: Usuario) {
      console.log(`Enviando email para ${usuario.nome}, que tem (${usuario.idade} anos)`);
    }
    

    Neste caso, a interface “Usuario” define as propriedades que um objeto do tipo “Usuario” deve ter. Isso não apenas ajuda você a entender rapidamente como os dados estão estruturados, mas também fornece uma forma de documentação para a sua equipe. Além disso, temos a função ´enviarEmail´ que determinamos que recebe um parâmetro do tipo “Usuario”, garantindo que ele tenha as propriedades nome e idade.

    Por outro lado, os tipos alias permitem criar nomes alternativos para tipos existentes. Imagine que você precisa lidar com o status de pedidos, que pode ser "aprovado," "reprovado" ou "pendente." Criar um tipo alias "Resultado" ajuda a tornar o código mais legível e seguro. Um exemplo de código onde isso seria aplicado é o seguinte:

    type Resultado = "aprovado" | "reprovado" | "pendente";
    function verificar(resultado: Resultado) {
      if (resultado === "aprovado") {
        console.log("Parabéns!");
      } else if (resultado === "reprovado") {
        console.log("Que pena!");
      } else {
        console.log("Aguarde!");
      }
    }
    

    Nesse caso, o tipo alias “Resultado” representa um dos três valores possíveis: "aprovado", "reprovado" ou "pendente". A função “verificar” recebe um parâmetro do tipo “Resultado”, garantindo que ele seja um desses valores.

    Configurando e compilando seu primeiro projeto TypeScript

    Agora, vamos mergulhar em como configurar e compilar seu projeto TypeScript. Primeiro, você precisa instalar o TypeScript globalmente no seu sistema usando o comando:

    npm install -g typescript
    

    Isso dá a você a capacidade de usar o comando "tsc" para transformar seu código TypeScript em JavaScript.

    Mas por que precisamos transformar o código?

    Embora o TypeScript seja uma ferramenta poderosa para desenvolvedores, ele não é diretamente compreendido pelos navegadores da web. Os navegadores entendem apenas JavaScript, não TypeScript.

    Portanto, quando desenvolvemos aplicativos ou sites em TypeScript, é necessário converter o código TypeScript em JavaScript. Isso é feito por meio de um processo chamado de "transpilação", que é a transformação do código de uma linguagem (no caso, TypeScript) em código equivalente em outra linguagem (JavaScript).

    Antes de utilizar o comando tsc, recomendamos a criação de um arquivo "tsconfig.json" na raiz do seu projeto. Esse arquivo contém configurações essenciais para o compilador, como a versão de saída do JavaScript, o sistema de módulos e o diretório de saída. Veja o exemplo abaixo:

    {
      "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "outDir": "./dist", 
        "strict": true
      }
    }
    

    E agora, vamos conhecer o que cada uma dessas configurações afeta no nosso projeto?

    • "compilerOptions": este é um conjunto de regras que você está definindo para o compilador TypeScript, como um guia para ele saber como transformar seu código TypeScript em código JavaScript. É como dizer ao compilador o que fazer.
    • "target: "es5": aqui você está dizendo para o compilador que você quer que seu código seja traduzido para uma versão mais antiga do JavaScript chamada ES5. Isso é importante se você precisa que seu código funcione em navegadores antigos que não entendem as versões mais recentes do JavaScript.
    • "module: "commonjs": essa configuração define como o código deve ser organizado em módulos. O "commonjs" é um formato comum usado em ambientes Node.js. Basicamente, isso ajuda a organizar seu código em partes separadas para que seja mais fácil de gerenciar.
    • "outDir: "./dist": isso diz ao compilador onde colocar os arquivos JavaScript que ele cria a partir do seu código TypeScript. Neste caso, os arquivos JavaScript serão colocados em uma pasta chamada "dist" no diretório principal do seu projeto.
    • "strict: true": essa opção faz com que o TypeScript seja muito rigoroso ao verificar os tipos de dados em seu código. Se você configurar como "true," ele será mais cuidadoso e ajudará a evitar erros de tipo, o que é ótimo para manter seu código seguro e sem bugs.

    Com a configuração definida, basta executar o comando "tsc" no terminal para que o TypeScript transforme seus arquivos em código JavaScript. Assim, você está pronto para usar seu código em qualquer navegador ou ambiente desejado.

    Conclusão

    À medida que exploramos o TypeScript no desenvolvimento front-end é importante lembrar que aprender novas tecnologias pode parecer um desafio no início. No entanto, é exatamente assim que a jornada de uma pessoa desenvolvedora se desenrola. Não desista quando encontrar obstáculos. Em vez disso, veja-os como oportunidades para crescer e melhorar suas habilidades.

    Sailor Moon, uma personagem de anime com longos cabelos loiros presos em duas partes, vestindo um uniforme de marinheiro com uma fita vermelha na parte superior. Ela está feliz e batendo palmas.

    Este artigo ofereceu uma introdução ao TypeScript e a sua importância no desenvolvimento front-end. Agora, é hora de você aprofundar seus conhecimentos, experimentar o TypeScript em seus projetos e continuar aprendendo. Não deixe de visitar a formação TypeScript: desenvolva front-end com mais produtividade, que fornece uma trilha pensada especialmente pra você!

    Além disso, não deixe de contar pra gente como está sendo seus estudos, marcando os perfis da Alura em suas redes sociais e usando a hashtag #AprendiNaAlura.

    Até a próxima!

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Mônica Mazzochi Hillman

      Autor(a)

      Mônica Mazzochi Hillman

      Bacharela em Tecnologias Digitais, especialista em User Experience e pós graduanda em Docência e Performance na Educação a Distância com experiência em suporte técnico de T.I e com tecnologias front-end. Atualmente é Community Marketing na HostGator e instrutora na Alura.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 08/11/2021

      Tailwind: criando componentes com @apply

      Ler mais
    • 10/09/2024

      Houdini CSS: um jeito mágico de criar estilos personalizados

      Ler mais
    • 10/04/2016

      Como realizar testes A/B com o Google Analytics

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura