1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScriptで書けるようになりたい。type-challengesで基礎力を高める。

Last updated at Posted at 2022-08-21

TypeScriptが書けるようになりたい1児の父です!
先日1歳になって、日々の成長が目覚ましいのを目の当たりにしていると自分も成長しなければと思います…

だからというわけではないですが…「TypeScriptを知ってるよ!」から「TypeScriptを書けるよ!」になるため、
継続して勉強していけるための工夫の一つとして勉強したことをアウトプットしていくことに決めました!

勉強方法

どんな勉強方法が良いかと考えていましたが…

type-challenges

個人的には多少なりとも勉強していたこともあったのでオススメされた下記をやってみることにしました。

サバイバルTypeScript

「サバイバルTypeScript」も気になったので、こちらも並行して進めたいと思います!

これまでで利用したコンテンツ

これまでに下記の有料のコンテンツで勉強しました。
動画でのハンズオン形式で、解説も丁寧なので非常にわかりやすかったです!

TypeScriptってなに?

TypeScriptはMicrosoftにより2012年10月1日に発表されたものらしいです。
最近耳にすることが多くなりましたが、ずいぶん前からあることに驚きです!

TypeScriptの特徴

  • JavaScriptに型が追加され、それ以外の部分は基本的に互換性がある
  • 型があることでコンパイル時にミスに気がつくことができる
  • JavaScript100%で記述してもTypeScriptのコンパイラーは解析してくれる

TypeScriptを学ぶというのはJavaScriptを学ぶことが必須。
JavaScriptも同時に学んでいかないといけないので学習コストは高めかもしれないです…。

「TypeScript誕生の背景」は面白かったで興味ある方は読んでみてください!

type-challengesの始め方

type-challengesのGitHubページへアクセス

ページにアクセスしてスクロールすると「Challenges」と書かれた箇所にタグがたくさんあります。
image.png

type-challengesの課題を選択する

タグをクリックすることで課題に取り組むことができます!
赤枠で囲まれた「Hello World」のタグをクリックします。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134363631322f38343733366536382d396663352d376264632d343861372d6237366365623632623333362e706e67.png

課題のページが開きます。
image.png

ページには下記のコードを編集してテストに合格するようにと書かれています。

// expected to be string
type HelloWorld = any

「Take the Challenge」のボタン(画像の赤枠部分)を押してチャレンジしてみます!
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134363631322f62396566663638642d323831622d373639662d663832352d3730323363376430396238322e706e67.png

課題に取り組む

クリックするとTypeScriptの実行環境が開きます。
開いた時点では右側の「Errors」でエラーが出ているのがわかるのでこちらを解消していけばいいかと思われます!

ページをスクロールすると「Your Code Here」とあるのでそちらを編集していきます!
編集すれば自動で実行されて結果が出ます。

テストケースは「Your Code Here」のすぐ下に「Test Cases」とあるところに記載してあるので参考にすれば修正方法がわかるかと思います!
image.png

コードを修正する

/* _____________ Your Code Here _____________ */

- type HelloWorld = any
+ type HelloWorld = string

/* _____________ Test Cases _____________ */
import type { Equal, Expect, NotAny } from '@type-challenges/utils'

type cases = [
  Expect<NotAny<HelloWorld>>,
  Expect<Equal<HelloWorld, string>>,
]

これでエラーは消えます。

回答を確認する

課題が書かれていたページの右下にある「Check out Solutions」をクリックします。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134363631322f62396566663638642d323831622d373639662d663832352d3730323363376430396238322e706e67 (1).png

Issueの一覧が出てくるので自分と同じ回答がないか探します。
すでにClosedになっているものから探すのが良いかと思います!
image.png

まとめ

始めたばかりですが、かなりの筋トレになりそうです。
Issueの中には自分とは違う回答の方もいらっしゃるので人のコードをみてそんな書き方もあるのかと学びにもなります!

これからTypeScriptを始める人、今頑張って勉強している人は是非学習方法の一つとして検討してみてください!

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?