arg?: T Parâmetros opcionais e padrão

Última atualização: 2026-10-22

arg?: T Parâmetros opcionais e padrão

O ? marca um parâmetro opcional (pode ser omitido) e o = atribui um padrão (usado quando omitido). Juntos, permitem que quem chama passe apenas o necessário — a primeira ferramenta para assinaturas amigáveis.

GrupoFunções e Classes
TipoSintaxe
Modo strictNão necessário

ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.

📝 Sintaxe

function buildLabel(orderId: number, prefix = "ORD", note?: string): string {
  const base = `${prefix}-${String(orderId).padStart(5, "0")}`;
  return note ? `${base} (${note})` : base;
}

⚙️ Parâmetros

prefix = "ORD"Parâmetro padrão: usado quando omitido; seu tipo é inferido do valor padrão
note?: stringParâmetro opcional: undefined quando omitido, logo seu tipo real é string | undefined e precisa de estreitamento antes do uso

Retorno:Anote ou infira o tipo de retorno como de costume; se um parâmetro opcional participar da lógica, o ramo undefined precisa ser tratado.

▶ Exemplo

Edite o código abaixo e clique em Testar para ver o resultado transpilado:

Saída:

ORD-00042
VIP-00042
ORD-00042 (urgente)

(Saída de execução após a transpilação; quando note é omitido ele fica undefined — nenhum "undefined" aparece no rótulo)

💡 Observações

ℹ️ Info Parâmetros opcionais devem vir depois dos obrigatórios; parâmetros padrão podem ficar em qualquer posição, mas pular um no meio exige passar undefined explicitamente.
⚠️ Atenção note?: string na verdade é string | undefined — chamar métodos de string diretamente gera erro; primeiro estreite com if (note) ou use um parâmetro padrão.
💡 Dica Com mais de 3 parâmetros, migre para um objeto de opções (options: { prefix?: string; note?: string }) — mais legível e extensível do que uma longa lista posicional.
Mais casos em breve.

📚 Tutoriais relacionados

❓ Perguntas frequentes

P Parâmetros padrão e opcionais podem ser combinados?
R Sim, e é comum: prefix = "ORD" pode ser omitido e tem um valor padrão por trás. Um parâmetro puramente ? fica undefined quando omitido — o corpo precisa tratar isso.
P Um parâmetro obrigatório pode vir depois de um opcional?
R Não — os obrigatórios devem vir primeiro. Parâmetros padrão no meio são a exceção: pule-os passando undefined, como em buildLabel(42, undefined, "加急").
P Parâmetros padrão ou sobrecargas?
R Use padrão/opcional para "menos argumentos"; sobrecargas servem para tipos de parâmetro genuinamente diferentes (por exemplo, string vs Date levando a lógicas distintas).
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%