Valores Padrão de Parâmetros
Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 26 de 73.
Enquanto parâmetros opcionais permitem que você escolha se deseja fornecer um valor, parâmetros padrão levam esse conceito adiante ao fornecer automaticamente um valor de fallback quando nenhum argumento é passado. Isso torna as funções mais convenientes de usar, mantendo a segurança de tipos.
Para criar um parâmetro padrão, você atribui um valor diretamente na assinatura da função usando o sinal de igual. O TypeScript infere automaticamente o tipo do parâmetro a partir do valor padrão:
function greet(name: string, greeting = "Hello"): string {
return greeting + ", " + name;
}
function calculateArea(width: number, height = 10): number {
return width * height;
}Nestes exemplos, greeting tem como padrão "Hello" (inferido como string) e height tem como padrão 10 (inferido como number). Quando você chama greet("Alice"), ele usa automaticamente a saudação padrão, mas você ainda pode substituí-la com greet("Alice", "Good morning").
Parâmetros padrão são efetivamente opcionais - você não precisa usar a sintaxe ? porque o valor padrão garante que o parâmetro sempre tenha um valor. Esta abordagem é mais limpa do que parâmetros opcionais quando você tem um padrão sensato, pois elimina a necessidade de verificar por undefined dentro da sua função.
Desafio
FácilCrie uma função chamada calculateTax que aceite dois parâmetros: price do tipo number (obrigatório) e rate do tipo number com um valor padrão de 0.05. A função deve retornar o valor do imposto como um número com uma anotação de tipo de retorno explícita.
A função deve calcular o imposto multiplicando o preço pela taxa.
Crie outra função chamada formatGreeting que aceite dois parâmetros: name do tipo string (obrigatório) e timeOfDay do tipo string com um valor padrão de "Hello". A função deve retornar uma string de saudação formatada com uma anotação de tipo de retorno explícita.
A função deve retornar a saudação no formato: "[timeOfDay], [name]!"
Crie uma terceira função chamada calculateShipping que aceite três parâmetros: weight do tipo number (obrigatório), distance do tipo number (obrigatório) e expedited do tipo boolean com um valor padrão de false. A função deve retornar o custo de envio como um número com uma anotação de tipo de retorno explícita.
A função deve calcular o custo de envio usando esta fórmula: (weight * 0.5) + (distance * 0.1). Se expedited for true, multiplique o resultado por 2.
Teste suas funções chamando-as com os seguintes valores e imprimindo os resultados:
- Chame
calculateTaxcom100(usando a taxa padrão) - Chame
calculateTaxcom200e0.08 - Chame
formatGreetingcom"Alice"(usando a saudação padrão) - Chame
formatGreetingcom"Bob"e"Good morning" - Chame
calculateShippingcom5e100(usando o valor padrão de envio expresso) - Chame
calculateShippingcom3,50etrue
Imprima cada resultado em uma linha separada na ordem especificada acima.
Experimente você mesmo
// TODO: Escreva seu código aqui
// Crie a função calculateTax
// Crie a função formatGreeting
// Crie a função calculateShipping
// Teste as funções e imprima os resultadosEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao TypeScript
1Primeiros Passos com TS
O que é TypeScript?Por que usar TypeScript?Seu Primeiro Código TypeScriptProcesso de Compilação e ErrosRecapitulação: Introdução ao TS4Trabalhando com Funções
Tipagem de Parâmetros e RetornosTipagem de Arrow FunctionsO Tipo de Retorno 'void'Parâmetros Opcionais com '?'Valores Padrão de ParâmetrosTipagem de Rest ParametersDefinindo Tipos de FunçõesRecapitulação: Criando Funções Tipadas2Tipos Principais
Tipos Básicos: str, num, booleanO Tipo 'any': Válvula de EscapeO Tipo 'unknown'Trabalhando com 'null' e 'undef'Inferência de Tipo na PráticaAnotações de Tipo ExplícitasRecapitulação: Prática de Tipos Principais5Tipos: Aliases, Uniões e Interseções
Aliases de Tipos para PrimitivosTipos de União ('|')Trabalhando com Tipos de UniãoTipos LiteraisTipos de Interseção ('&')Combinando Aliases de TiposRecapitulação: Combinações Avançadas de Tipos3Estrutura de Dados: Arrays e Tuplas
Arrays TipadosModificador 'readonly' para ArraysO que é uma Tupla?Declarando e Acessando TuplasDesestruturando TuplasTuplas ReadonlyArrays Tipados MultidimensionaisSpread Operator com ArraysRecapitulação: Arrays e TuplasPratique por conta própria: Playground de TypeScript