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.
| Grupo | Funções e Classes |
|---|---|
| Tipo | Sintaxe |
| Modo strict | Nã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?: string | Parâ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.
🏷️ Funções e Classes Relacionadas
💡 Casos relacionados
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).