Parâmetros Opcionais com '?'
Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 25 de 73.
Às vezes, você deseja criar funções onde certos parâmetros nem sempre são obrigatórios. O TypeScript fornece a sintaxe ? para marcar parâmetros como opcionais, o que significa que quem chama a função pode escolher se deseja ou não fornecê-los ao chamá-la.
Para tornar um parâmetro opcional, você adiciona um ponto de interrogação após o nome do parâmetro, mas antes da anotação de tipo:
function greet(name: string, greeting?: string): string {
if (greeting) {
return greeting + ", " + name;
}
return "Hello, " + name;
}Neste exemplo, name é obrigatório, enquanto greeting é opcional. Você pode chamar esta função apenas com o nome (greet("Alice")) ou com ambos os parâmetros (greet("Alice", "Good morning")). Dentro da função, os parâmetros opcionais têm o tipo string | undefined, então você deve verificar se eles existem antes de usá-los.
Desafio
FácilCrie uma função chamada createUserProfile que aceite dois parâmetros: username do tipo string (obrigatório) e displayName do tipo string (opcional). A função deve retornar uma string com uma anotação explícita de tipo de retorno.
Quando ambos os parâmetros forem fornecidos, a função deve retornar: "Profile: [displayName] (@[username])"
Quando apenas o nome de usuário for fornecido, a função deve retornar: "Profile: @[username]"
Crie outra função chamada calculateDiscount que aceite dois parâmetros: price do tipo number (obrigatório) e membershipLevel do tipo string (opcional). A função deve retornar um número com uma anotação explícita de tipo de retorno.
Quando ambos os parâmetros forem fornecidos, a função deve retornar o preço reduzido em 10% (multiplicar por 0.9).
Quando apenas o preço for fornecido, a função deve retornar o preço original inalterado.
Teste suas funções chamando-as com os seguintes valores e imprimindo os resultados:
- Chame
createUserProfilecom"john_doe"e"John Doe" - Chame
createUserProfileapenas com"jane_smith" - Chame
calculateDiscountcom100e"premium" - Chame
calculateDiscountapenas com75
Imprima cada resultado em uma linha separada na ordem especificada acima.
Experimente você mesmo
// TODO: Escreva seu código aqui
// Crie a função createUserProfile com as anotações de tipo adequadas
// Crie a função calculateDiscount com as anotações de tipo adequadas
// 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: Compilador de JavaScript online