赤い波線を消せ
初段 / 目安 10分
商店街公式フリマアプリ「fleama」の開発室に、助っ人として招かれました。案内してくれたのはテックリードの凛さんです。静かな人で、机の上には物がほとんど置かれていません。
「歓迎します。ルールは1つ。私のCI、つまり tsc が通らないコードはマージしません」
そして凛さんはエディタを開いて、こちらに向けました。「新人が書いた商品表示のコード、エディタが波線だらけです。型注釈を付けて静かにしてください」
TypeScript は、値の形をあらかじめ書いておける JavaScript です。const name = "みかん" と書けば、TypeScript は勝手に「これは文字列だ」と推論してくれます。ただしこの道場の第一問では、あえて手で書いてもらいます。型注釈の書き方そのものを、指が覚えている状態にしておきたいからです。
書き方は変数名のうしろに半角の記号を1つ置き、そのあとに型名を並べるだけです。基本の型は3つ覚えれば当面足ります。文字列は string、数値は number、真偽値は boolean です。TypeScript には String や Number のような大文字始まりの型も存在しますが、日常で使うのは小文字のほうです。ここでも小文字を使ってください。
完成条件
商品名・価格・売切れフラグの3つを受け取り、商品表示用の1行を返す関数 describeItem を作ってください。
関数の中で、3つの変数を型注釈つきで宣言してから使ってください。
返す文字列の形は次のとおりです。
プレーンテキスト
みかん 380円 販売中- 売切れフラグが
trueのときは末尾を売切れにすること falseのときは末尾を販売中にすること- 「円」の前後に余分なスペースを入れないこと。区切りは半角スペース1つ
進め方
白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。
判定は凛さんのCIと同じものです。型が1つでも合っていなければ、実行にすら進みません。逆に言えば、型さえ通ればあとは普通の JavaScript です。恐れることは何もありません。
要件
- 関数名は describeItem、引数は商品名・価格・売切れフラグの3つ
- 引数と戻り値にも型注釈を付けること
- 関数の中で、商品名は string、価格は number、売切れフラグは boolean の型注釈つきで変数を宣言すること
- 売切れフラグが true なら末尾を「売切れ」、false なら「販売中」にすること
- 「みかん 380円 販売中」の形の文字列を return で返すこと
入出力例
describeItem("みかん", 380, false) → "みかん 380円 販売中"
describeItem("中古スニーカー", 4200, true) → "中古スニーカー 4200円 売切れ"
describeItem("手編みマフラー", 1800, false) → "手編みマフラー 1800円 販売中"
describeItem("レトロ湯呑み", 0, false) → "レトロ湯呑み 0円 販売中"
describeItem("商店街トートバッグ", 990, true) → "商店街トートバッグ 990円 売切れ"ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです