Olá, mundo

Olá, mundo

Exercício tutorial

Introdução

“Hello, World!” vai pôr-te a escrever algum código em TypeScript e a familiarizar-te com o fluxo de trabalho do Exercism. Concluí-lo desbloqueia o resto do percurso de TypeScript.

Vê o nosso vídeo «Introdução ao Hello, World» para começares 👇

Instruções

O exercício introdutório clássico. Diz apenas "Hello, World!".

O "Hello, World!" é o tradicional primeiro programa de quem está a começar a programar numa nova linguagem ou num novo ambiente.

Os objetivos são simples:

  • Altera o código fornecido para que produza a string "Hello, World!".
  • Corre os testes e certifica-te de que passam.
  • Submete a tua solução e verifica-a no site.

Se tudo correr bem, estás pronto para ir buscar o teu primeiro exercício a sério.

Configuração

Segue as instruções de configuração do TypeScript para instalares as dependências necessárias:

https://exercism.org/docs/tracks/typescript/installation

Requisitos

Instala as dependências do exercício:

$ yarn install

Fazer passar o conjunto de testes

Executa os testes com:

$ yarn test

Em muitos conjuntos de testes, todos os testes exceto o primeiro estão ignorados.

Assim que conseguires passar um teste, podes deixar de ignorar o seguinte, alterando xit para it.

Tutorial

Esta secção é um guia passo a passo para resolver este exercício.

Este exercício tem dois ficheiros:

  • hello-world.ts
  • hello-world.test.ts

É no primeiro ficheiro que vais escrever o teu código. O segundo é onde os testes estão definidos.

Os testes vão verificar se o teu código está a fazer o que é suposto. Não precisas de conseguir escrever um conjunto de testes de raiz, mas ajuda perceber como é um teste e o que ele está a fazer.

Abre o ficheiro de testes, hello-world.test.ts. Lá dentro há um único teste:

it('says hello world', () => {
  expect(hello()).toEqual('Hello, World!')
})

Corre o teste agora, com o seguinte comando na linha de comandos:

$ yarn test

O teste falha, o que faz sentido, já que ainda não escreveste código.

A falha tem este aspeto:

    × says hello world (5ms)

  ● Hello World › says hello world

    expect(received).toEqual(expected) // deep equality

    Expected: "Hello, World!"
    Received: "Goodbye, Mars!"

      4 |
      5 |   it('says hello world', () => {
    > 6 |     expect(hello()).toEqual('Hello, World!')
        |                     ^
      7 |   })
      8 |
      9 | })

      at Object.it (hello-world.test.ts:6:32)

E estas são as linhas de código com prováveis defeitos no ficheiro hello-world.test.ts:

a 6.ª linha:

    expect(hello()).toEqual('Hello, World!')
                    ^

Logo, o problema está na chamada da função hello(). Vemos que o teste espera 'Hello, World!' como resultado, mas em vez disso recebe "Goodbye, Mars!".

Vamos então ver agora esta função no ficheiro hello-worlds.ts:

export function hello(): string {
  return 'Goodbye, Mars!'
}

Agora vemos que a função devolve a string incorreta, que é a razão da nossa falha. Vamos corrigir isto alterando o valor devolvido:

export function hello(): string {
  return 'Hello, World!'
}

Corre o teste novamente:

 PASS  ./hello-world.test.ts
  Hello World
    √ says hello world (4ms)

E passa!

Editar via GitHub A ligação abre numa nova janela ou separador
TypeScript Exercism

Estás pronto para começar Olá, mundo?

Inscreve-te no Exercism para aprenderes e dominares TypeScript com 108 exercícios, e mentoria humana real, tudo grátis.