
TypeScript já se tornou uma peça fundamental para quem trabalha com desenvolvimento web.
Mas será que você está aproveitando todo o seu potencial? Hoje, vou compartilhar os Melhores Truques e Dicas de TypeScript que realmente fazem a diferença em projetos reais.
Se você quer escrever código mais seguro, eficiente e fácil de manter, esse post é para você!
Sumário do Artigo
Por que usar TypeScript?
Se você já trabalha com JavaScript, pode estar se perguntando: “Preciso mesmo de TypeScript?” 🤔
A resposta curta: sim!
A resposta longa: TypeScript adiciona tipagem estática, melhora a experiência do desenvolvedor, previne erros e torna o código mais escalável. Não é à toa que grandes empresas como Google, Microsoft e Airbnb adotaram o TypeScript em seus projetos.
Agora que já temos uma boa motivação, vamos direto ao ponto: como aproveitar ao máximo o TypeScript no seu dia a dia?
1️⃣ Utilize strict
para um código mais seguro: Melhores Truques e Dicas de TypeScript
Por padrão, o TypeScript permite algumas flexibilidades que podem gerar problemas no futuro.
Para evitar isso, habilite o modo estrito (strict
) no tsconfig.json
:
{
"compilerOptions": {
"strict": true
}
}
Isso ativa opções como noImplicitAny
, strictNullChecks
e strictFunctionTypes
, garantindo um código mais seguro e sem surpresas.
2️⃣ Defina tipos com type
e interface
corretamente: Melhores Truques e Dicas de TypeScript
Ambos são usados para definir tipos, mas com algumas diferenças.
Veja quando usar cada um:
Recurso | type | interface |
---|---|---|
Extensibilidade | ❌ Não pode ser extendido | ✅ Pode ser extendido |
União e Interseção | ✅ Suporta | ✅ Suporta |
Performance | 🔄 Mais lento na compilação | ⚡ Mais rápido |
Exemplo de uso de interface
interface User {
name: string;
age: number;
}
Exemplo de uso de type
type User = {
name: string;
age: number;
};
Dica: se precisar criar um objeto que possa crescer com o tempo, use interface
. Se for um tipo mais fixo ou uma união de tipos, use type
.
3️⃣ Use as const
para valores imutáveis: Melhores Truques e Dicas de TypeScript
Se você tem um objeto ou array que não deve ser modificado, use as const
para evitar alterações acidentais.
const colors = ["red", "green", "blue"] as const;
// Erro! colors é um array readonly.
colors.push("yellow");
Isso garante que os valores sejam tratados como constantes, ajudando a evitar bugs.
4️⃣ Evite any
a todo custo 🚫
O any
pode parecer uma solução rápida, mas ele anula as vantagens do TypeScript.
Sempre que possível, substitua any
por um tipo mais específico.
❌ Evite isso
let data: any; // Péssima prática!
✅ Faça assim
let data: string | number;
Se precisar de um tipo mais flexível, opte por unknown
, que exige verificação antes do uso:
let input: unknown;
if (typeof input === "string") {
console.log(input.toUpperCase());
}
5️⃣ Inferência de tipos: deixe o TypeScript trabalhar para você
Você não precisa sempre definir os tipos manualmente. O TypeScript já é inteligente o suficiente para inferi-los:
❌ Código redundante
let name: string = "Maria";
✅ Código mais limpo
let name = "Maria"; // O TypeScript sabe que é uma string!
Isso mantém o código mais legível e sem repetições desnecessárias.
6️⃣ Torne suas funções mais seguras com never
e unknown
: Melhores Truques e Dicas de TypeScript
Se você tem uma função que nunca deve retornar (por exemplo, um erro), use never
:
function throwError(message: string): never {
throw new Error(message);
}
E se você não souber o tipo de dado que vai receber, prefira unknown
em vez de any
:
function processData(input: unknown) {
if (typeof input === "string") {
console.log(input.toUpperCase());
}
}
Isso força o desenvolvedor a validar os dados antes de usá-los, evitando problemas em tempo de execução.
Confira também:
7️⃣ Use readonly
para proteger seus dados: Melhores Truques e Dicas de TypeScript
Se um objeto ou propriedade não deve ser alterado, use readonly
:
interface Car {
readonly model: string;
}
const myCar: Car = { model: "Tesla" };
// Erro! Não é possível modificar um campo readonly
myCar.model = "BMW";
Isso ajuda a evitar mutações acidentais e mantém a integridade dos dados.
8️⃣ Trabalhe com Tipos Opcionais e Valores Padrão: Melhores Truques e Dicas de TypeScript
Nem sempre um dado será obrigatório. Use ?
para torná-lo opcional e default parameters
para evitar valores indefinidos:
interface User {
name: string;
age?: number;
}
function greet(user: User) {
console.log(`Olá, ${user.name}!`);
}
greet({ name: "Carlos" }); // Funciona sem problemas!
Se precisar definir um valor padrão, use:
function multiply(a: number, b: number = 1) {
return a * b;
}
console.log(multiply(5)); // Retorna 5
Confira também:
9️⃣ Crie Tipos Dinâmicos com keyof
e Mapped Types
Se você precisa criar um tipo baseado em outro, keyof
e Mapped Types
são seus aliados:
type User = {
name: string;
age: number;
};
type UserKeys = keyof User; // "name" | "age"
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key];
}
const user: User = { name: "Ana", age: 30 };
console.log(getProperty(user, "name")); // "Ana"
Isso torna o código mais flexível e reaproveitável.
🔟 Dica Bônus: Atalhos no VS Code para Boost de Produtividade
Se você usa VS Code, aproveite esses atalhos para ganhar tempo:
Ctrl + Space
→ Sugestões de código (IntelliSense)F2
→ Renomeia todas as ocorrências de uma variávelShift + Alt + ↓
→ Duplica uma linhaCtrl + Shift + P
→ Abre a paleta de comandos
Conclusão
O TypeScript é uma ferramenta poderosa que pode transformar a forma como você desenvolve aplicações.
Aplicando essas dicas no seu projeto, você terá um código mais seguro, escalável e fácil de manter.
Se curtiu essas dicas, compartilhe com seus amigos devs! E se tiver alguma dúvida ou dica extra, deixe nos comentários.