TypeScript
JavaScript
Tipos
Desenvolvimento
React Native
Mobile

TypeScript para Aplicativos: Guia de Desenvolvimento Tipado

TypeScript adiciona tipos ao JavaScript. Para aplicativos, isso significa menos bugs, melhor DX e código mais manutenível. Este guia apresenta como usar TypeScript em desenvolvimento mobile.

O Que É TypeScript

Definição

Superset de JavaScript com tipos estáticos.

Relação com JS

Todo JS válido é TS válido.

Compilação

Compila para JavaScript.

Adoção

Crescimento massivo. Padrão para projetos sérios.

Por Que TypeScript

Catch Errors Early

Erros em tempo de compilação, não runtime.

Autocompletion

IDE sabe o que é possível.

Refactoring

Mudanças seguras em grande escala.

Documentation

Tipos são documentação viva.

Team Scale

Múltiplos desenvolvedores alinhados.

Tipos Básicos

Primitivos

string, number, boolean, null, undefined.

Arrays

number[], Array.

Objects

{ name: string; age: number }.

Any

Opt-out de tipos. Evite.

Unknown

Tipo seguro quando não sabe.

Interfaces e Types

Interface

Define forma de objetos.

Type Alias

Nome para qualquer tipo.

Difference

Interface extende, type para unions.

Quando Usar

Interface para objetos, type para composição.

Tipos Avançados

Union

string | number.

Intersection

TypeA & TypeB.

Generics

Array, função que funciona com qualquer tipo.

Literal Types

"success" | "error".

Utility Types

Partial, Required, Pick, Omit.

TypeScript em React Native

Setup

Template TypeScript disponível.

Components

Props e state tipados.

Navigation

React Navigation com tipos.

State

Redux/Zustand com tipos.

API

Respostas tipadas.

Tipando Components

Props Interface

interface Props { title: string; onPress: () => void; }

Optional Props

title?: string.

Default Props

Valores padrão com destructuring.

Children

React.ReactNode.

Tipando APIs

Response Types

interface User { id: string; name: string; }

Generics

async function fetch(url: string): Promise

Zod/Yup

Validação runtime + tipos.

State Management

Redux

createSlice com tipos.

Zustand

Interface do store.

Context

Tipo do context value.

Navigation Types

React Navigation

StackParamList para rotas tipadas.

Route Params

Parâmetros tipados entre telas.

useNavigation

Hook tipado.

Configuração

tsconfig.json

Opções de compilação.

strict Mode

Máxima segurança. Use sempre.

Path Aliases

@/components para imports limpos.

Migração de JS para TS

Gradual

Renomeie .js para .ts incrementalmente.

allowJs

Permite JS enquanto migra.

any Temporário

Use para migrar rápido, remova depois.

Strict Later

Enable strict depois de migrar.

Padrões

Discriminated Unions

type State = { status: 'loading' } | { status: 'success'; data: Data }.

Exhaustive Checks

Switch que garante todos casos.

Const Assertions

as const para literais.

Erros Comuns

any Everywhere

Perde benefícios de tipos.

Ignoring Errors

// @ts-ignore sem necessidade.

Over-Typing

Tipos complexos demais.

Not Using Strict

Perde validações importantes.

Ferramentas

VS Code

Suporte excelente nativo.

ESLint

@typescript-eslint para linting.

Prettier

Formatação consistente.

Performance

Compile Time

Pode ser lento em projetos grandes.

Runtime

Zero overhead. Tipos são removidos.

Bundle Size

Igual a JavaScript.

Conclusão

TypeScript é investimento que paga em qualidade e produtividade. Para apps, significa menos bugs em produção, refactoring seguro e onboarding mais fácil de novos devs.

FAQs

1) TypeScript é mais lento? Compilação sim. Runtime não há diferença.

2) Preciso tipar tudo? TypeScript infere muito. Tipe o necessário.

3) Vale para projeto pequeno? Sim. Benefícios desde o início.

4) Como começar em projeto existente? Gradualmente. Arquivo por arquivo.

5) TypeScript funciona com React Native? Perfeitamente. Template oficial disponível.

Leia também

TypeScript para Aplicativos: Guia de Desenvolvimento Tipado | Matheus Breguêz