“Hello, World!”に取り組むと、TypeScriptのコードを書きながら、Exercismの進め方を身につけられます。これを完了すると、TypeScriptトラックの残りの演習のロックが解除されます。
はじめるには、“Introduction to Hello, World”の動画を見てみましょう👇
古典的な入門用の演習です。 ただ"Hello, World!"と言うだけです。
"Hello, World!"は、新しいプログラミング言語や環境でプログラミングを始めるときの、伝統的な最初のプログラムです。
目標はシンプルです:
すべてうまくいけば、最初の本格的な演習を取得する準備が整います。
必要な依存関係をインストールするために、TypeScriptのセットアップ手順を確認しましょう:
https://exercism.org/docs/tracks/typescript/installation
課題の依存関係をインストールします:
$ yarn install
次のコマンドでテストを実行します:
$ yarn test
多くのテストスイートでは、最初のテスト以外はすべてスキップされています。
テストが1つ通ったら、xitをitに変えると、次のテストのスキップを解除できます。
ここでは、この演習を解く手順を順を追って説明します。
この演習には2つのファイルがあります:
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)
今度は通りました!
Exercismに登録すれば、108個の演習、そして本物の人間によるメンタリングとともに、TypeScriptを学んでマスターできます。すべて無料です。