LoginSignup
11
3

mosya<TC> で中級までチームの皆で解いてみた

Posted at

自分の事業部では、毎朝チームで朝会を実施してます。

自分が所属していたチームでは毎日1問、
脳の準備体操を兼ねてTypeScriptの型問題に取り組むことになりました。

mosya<TC>というType Challenge用のWEBアプリがあったので、チームで解いてみることに。

mosya<TC>初級編

Googleアカウントがあれば登録できるようなので、早速ログイン。

初級編だし、朝の頭の体操にちょうどいいよね〜。
と思っていましたが大間違いでした。

017e9ffca642d4183b7abcaca077f35f.png

初級編とは名ばかりで初見殺しです

結構な裏切りを何回も喰らいました。
(しかも前回の問題でやった内容とかなので余計悔しいです)

難易度としては以下のような感じです。

// JavaScriptのArray.include関数を型システムに実装します。
// この型は、2 つの引数を受け取り、trueやfalseを出力しなければなりません。

// Includesを実装してください
type isPillarMen = Includes<["Kars", "Esidisi", "Wamuu", "Santana"], "Dio">; // expected to be `false`

朝会のメンバーは4人いるのですが(全員Type Challengeとかは未経験)、全員でちゃんと悩んでギリクリアできるような難易度で、適度な楽しさを感じながらも、後に控えている中級編にドキドキしていきました。

この難易度でも、しっかりとヒントは活用していきました。(笑)

mosya<TC>中級編

初級をなんとかすべてクリアして挑んだ中級編ですが。。。

8ae4909f11d2dc5114ded10dfeee3a31.png

中級編とはいえないレベルで難しい。

文字通り、めちゃくちゃ難しくて全然解けませんでした。

ノーヒントクリアする時もあったんですが、初めて答えまで見る時もあったり、中には難易度が高いのにヒントが存在しない問題もありました。

でも、チームで「実務で使わないでしょ!」とか、「これはずるい!」とか言いながら問題を解いていくのは楽しかったです。

中級編はこんな感じ。

// Union 型を Union 型の値の順列を含む配列に変換するPermutation順列型を実装します。

type perm = Permutation<'A' | 'B' | 'C'>; 
// ['A', 'B', 'C'] | ['A', 'C', 'B'] | ['B', 'A', 'C'] | ['B', 'C', 'A'] | ['C', 'A', 'B'] | ['C', 'B', 'A']

上級編 to be continue...

正直中級編くらいのレベルが、朝会という限られた時間(10分くらい)の中で、ちょうど解けたり解けなかったりを楽しむことができます。

上記の難易度でもまだ行けそう、という方は是非上級編をお楽しみください。
(自分も時間が空いている時にやってみます。)

da362137511dfbbde8666abad4173b28.png

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3