この事前課題は、以下のことを目的としています。
- TypeScript の言語機能の習得
- ブラウザの DOM API に触れる
TypeScript Handbook を一通り読みましょう。
TypeScript を使って、ブラウザ上で FizzBuzz が動作するようにしましょう。src/fizzbuzz.ts
を編集して、以下の要件が満たされるようにしてください。
FizzBuzz ボタンを押したら、ol
要素に次々とli
要素が追加され、FizzBuzz が表示されるようにしてください。
N 番目のli
要素は、N が 3 で割り切れるとき“Fizz”、5 で割り切れるとき“Buzz”、3 でも 5 で割り切れるとき“FizzBuzz”、それ以外のときは N の数字をテキストノードとして持ちます。
はじめは以下のように空のol
要素があります。
<ol></ol>
一度ボタンを押したら以下のように、ひとつli
要素が追加されます。
<ol>
<li>1</li>
</ol>
何度もボタンを押すと、以下のように FizzBuzz のルールに従ってli
要素が追加されていきます。
<ol>
<li>1</li>
<li>2</li>
<li>Fizz</li>
<li>4</li>
<li>Buzz</li>
<li>6</li>
...
</ol>
DOM と呼ばれる API を利用するとよいでしょう。
リポジトリのルートで、以下のようにローカルサーバーを起動できます。
$ make ts-dev
この状態で http://localhost:9000 にアクセスすると、FizzBuzz のページを見ることができます。
期待通りに動作しているかどうかは、リポジトリのルートで、以下のようにテストを実行することで確認できます。
$ make ts-test
FizzBuzz を実装するには何通りもの方法があります。
例えば以下の interface を満たすようなFizzBuzz
class を作る方法があるでしょう。
interface FizzBuzz {
next(): string;
}
あるいは以下のようにGenerator にすることもできるでしょう。
function* fizzbuzz(): IterableIterator<string> {}
自由な発想で FizzBuzz を実現してください。
- TypeScript Handbook
- TypeScript について一通り学べる
- MDN Web Docs
- Web ページを構成する技術について網羅的にまとまっている
ブラウザの Developer Tools でログを確認したり、デバッガーを使ったりできます。