Hello World

Hello World

チュートリアル演習

はじめに

“Hello, World!”に取り組むと、TypeScriptのコードを書きながら、Exercismの進め方を身につけられます。これを完了すると、TypeScriptトラックの残りの演習のロックが解除されます。

はじめるには、“Introduction to Hello, World”の動画を見てみましょう👇

説明

古典的な入門用の演習です。 ただ"Hello, World!"と言うだけです。

"Hello, World!"は、新しいプログラミング言語や環境でプログラミングを始めるときの、伝統的な最初のプログラムです。

目標はシンプルです:

  • 用意されたコードを変更して、文字列"Hello, World!"を出力するようにします。
  • テストスイートを実行して、成功することを確認します。
  • 解答を提出して、ウェブサイトで確認します。

すべてうまくいけば、最初の本格的な演習を取得する準備が整います。

セットアップ

必要な依存関係をインストールするために、TypeScriptのセットアップ手順を確認しましょう:

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

必要なもの

課題の依存関係をインストールします:

$ yarn install

テストスイートをパスさせるには

次のコマンドでテストを実行します:

$ yarn test

多くのテストスイートでは、最初のテスト以外はすべてスキップされています。

テストが1つ通ったら、xitをitに変えると、次のテストのスキップを解除できます。

チュートリアル

ここでは、この演習を解く手順を順を追って説明します。

この演習には2つのファイルがあります:

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

1つ目のファイルにコードを書きます。 2つ目のファイルにはテストが定義されています。

テストは、書いたコードが正しく動いているかを確認してくれます。 テストスイートを一から書ける必要はありませんが、テストがどんな見た目で、何をしているのかを理解しておくと役立ちます。

テストファイルのhello-world.test.tsを開いてみましょう。 中にはテストが1つだけあります:

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

では、コマンドラインで次のコマンドを実行して、テストを走らせてみましょう:

$ yarn test

テストは失敗します。まだコードを書いていないのですから、当然ですね。

失敗すると、次のように表示されます:

    × 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)

そして、これがhello-world.test.tsファイルの中で問題がありそうなコードの行です:

6行目:

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

つまり、問題はhello()の呼び出しにあります。 テストは'Hello, World!'を出力として期待しているのに、実際には"Goodbye, Mars!"が返ってきていることがわかります。

では、hello-worlds.tsファイルのこの関数を確認してみましょう:

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

関数が間違った文字列を返しているのが、失敗の原因です。戻り値を変えて修正しましょう:

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

もう一度テストを実行してみましょう:

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

今度は通りました!

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
TypeScript Exercism

Hello Worldを始める準備はできましたか?

Exercismに登録すれば、108個の演習、そして本物の人間によるメンタリングとともに、TypeScriptを学んでマスターできます。すべて無料です。