Valores Padrão na Desestruturação
Combine valores padrão com anotações de tipo com segurança.
Valores Padrão na Desestruturação é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.
Preenchendo as Lacunas
Valores padrão de desestruturação fornecem uma alternativa quando uma propriedade ou um elemento está ausente ou é undefined. Combinados com a inferência do TypeScript, tornam configurações opcionais práticas e seguras.
Um Valor Padrão na Desestruturação de Objetos
Escreva = value depois de uma vinculação para fornecer uma alternativa. Se a propriedade estiver ausente ou for undefined, o valor padrão será usado.
const opts: { count?: number } = {}
const { count = 0 } = opts
console.log(count) // 0Valores Padrão com Propriedades Opcionais
Valores padrão combinam naturalmente com propriedades opcionais (?). O valor padrão elimina o caso undefined, portanto a variável resultante tem o tipo não opcional.
interface Opts { retries?: number }
function connect(opts: Opts) {
const { retries = 3 } = opts
// retries is number, not number | undefined
return retries * 2
}
console.log(connect({}))Valores Padrão e Tipos Inferidos
Se você não anotar, o TypeScript infere o tipo da variável a partir do valor padrão. Aqui, 0 faz com que count seja um number.
const settings: { count?: number; label?: string } = { label: "hi" }
const { count = 0, label = "none" } = settings
console.log(count, label) // 0 hiSomente undefined Aciona o Valor Padrão
Um detalhe sutil: os valores padrão se aplicam somente a undefined, nunca a outros valores falsos, como 0, "" ou null. Esses valores passam sem alterações.
const { x = 10 } = { x: 0 }
console.log(x) // 0, not 10 — 0 is not undefined
const { y = 10 } = { y: undefined as number | undefined }
console.log(y) // 10Valores Padrão em Parâmetros de Função
Valores padrão em parâmetros desestruturados tornam as opções opcionais fáceis de usar. Cada campo pode ter sua própria alternativa diretamente na assinatura.
function draw({ x = 0, y = 0 }: { x?: number; y?: number }) {
return x + "," + y
}
console.log(draw({ x: 5 })) // 5,0Definir um Valor Padrão para o Parâmetro Inteiro
Para permitir que quem chama omita completamente o objeto de argumentos, forneça ao próprio parâmetro o valor padrão {}. Sem isso, uma chamada sem argumentos causaria uma exceção.
function draw({ x = 0, y = 0 }: { x?: number; y?: number } = {}) {
return x + "," + y
}
console.log(draw()) // 0,0Valores Padrão com Renomeação
Você pode renomear e definir um valor padrão na mesma vinculação: renomeie primeiro e depois adicione o valor padrão após o novo nome.
const { count: total = 0 } = { } as { count?: number }
console.log(total) // 0Valores Padrão Calculados
Um valor padrão pode ser qualquer expressão, inclusive uma que faça referência a vinculações anteriores. Ele é avaliado sob demanda — somente quando o valor está realmente ausente.
function make({ width = 100, height = width }: { width?: number; height?: number } = {}) {
return width + "x" + height
}
console.log(make({ width: 50 })) // 50x50Recapitulação dos Valores Padrão em Vetores
Os valores padrão também funcionam na desestruturação de vetores, sendo aplicados por posição quando um elemento está ausente ou é undefined.
const [a = 1, b = 2, c = 3] = [10, undefined]
console.log(a, b, c) // 10 2 3Quando os Valores Padrão São Úteis
Valores padrão são ideais para objetos de opções: quem chama especifica apenas o que deseja configurar, e a função preenche alternativas sensatas. Eles também removem undefined dos tipos inferidos, simplificando o corpo da função.
interface Config { debug?: boolean; level?: number }
const init = ({ debug = false, level = 1 }: Config = {}) => debug ? level : 0
console.log(init({ debug: true, level: 5 }))Verificação rápida
Teste sua compreensão sobre valores padrão em desestruturações.
Recapitulação
Valores padrão de desestruturação (= fallback) aplicam-se somente quando um valor está ausente ou é undefined — nunca para outros valores falsos. Eles removem undefined dos tipos de propriedades opcionais, podem ser inferidos ou anotados, permitem renomeação e podem fazer referência a vinculações anteriores. Para objetos de opções, defina o parâmetro como {} por padrão para que quem chama possa omiti-lo completamente.
Perguntas Frequentes
A aula “Valores Padrão na Desestruturação” é grátis?
Sim — o texto completo de “Valores Padrão na Desestruturação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.
O que vou aprender em “Valores Padrão na Desestruturação”?
Combine valores padrão com anotações de tipo com segurança. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar TypeScript Academy?
Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Valores Padrão na Desestruturação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de TypeScript Academy?
Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Tipos na Desestruturação de Objetos
- Desestruturação de Matrizes e Tuplas
- Valores Padrão na Desestruturação
- Padrões de Desestruturação Aninhados