LoginSignup
11
7

More than 5 years have passed since last update.

js恐怖症がTypeScriptを触ってみた

Last updated at Posted at 2017-06-19

今更感はありますが、やっとTSを触ったのでまとめておきます。
※ 尚、本文には個人的感情が多く含まれております

jsが怖い件

仕事でjavascriptを触るようになってから1年たちます
経験の浅いプログラマーですが、今まではActionScript,C#,Swiftなどを触っていました
オブジェクト指向から入り、静的型のある言語ばかりを触ってきました

jsのこわいとこ

  • 静的型がない
  • クラスがない
  • コード補完が全然効かない
  • 文字列頼みのコードが多くなる
  • 適当に書いても動いちゃうw (※ 動的型のためエラーが出にくい)

恐ろしいと感じてしまった為、私の中でjsのハードルは他の言語より高かったです
そしてこの辺は、TypeScriptで解決できる部分でもあります

TypeScriptを触ってみた

嬉しい特徴

「これからjsを始めます」って人はすんなり入れるのではないかと思います
純粋なjsよりも理解しやすいのではないかなー
逆にjsしか触ったことのない人は抵抗を感じるんですかね?

  • 静的型づけ
  • class
    • 宣言することでクラスが書ける
  • extends
    • クラスの継承
  • interface
    • クラスの多重継承
  • module
    • 名前空間の定義
  • enum
    • 列挙型
  • arrow関数
    • this変更がないから使いやすい
  • public, private, protected
    • いわずもがな
  • ES6の機能が入ってる
    • importとかとか。アプデしやすくていいね

学習コストを高めてる部分

好きなのですが、わかりやすいのですが、
導入しはじめにはハードルが高くなる部分?
使いどころが難しかったり、あまり他の言語で見られない特徴まわりです

  • interfaceやnamespaceなどの定義
    • ルールが多くて面倒臭い
    • それぞれを理解するのにちょっと勉強が必要
  • 引数プロパティ
    • コンストラクタの引数にpublicまたはprivateの修飾子を付ける
    • あまり多用してほしくないかも
  • ?: optional null可能変数
    • 便利だが怖い機能。慣れるまでに時間かかるかも?)
  • 中途半端なタプル型
    • 使いどころが微妙で混乱しそう

まとめ

  • TS独特の文化が強いのかな?と思って入ったけれど、他の言語からとった特徴が多くあり、割とすんなり入れた
  • ES6にアプデしやすいらしいってことが好印象
  • 意外としばりの強いルールみたいのはなくて、使いやすい
  • ASに特に似てる
  • そんなにモダンじゃないから入りやすそう
  • クラスや型がないJSよりもハードルは低い(JS始める時はハードル高かった)

結論

  • JSしか触ったことのない人は勉強コスト高そう
  • JS以外の言語経験者はすんなりいけそう

個人的にはとてもメリットの強い言語だと思いましたよ!

参考ページ

参考に見させていただきました。
ありがとうございますm(_ _)m

一部の機能のまとめです。とても読みやすいので最初に読んでもいいかも
【 TypeScript入門】特徴と機能の一部をまとめました | 株式会社LIG

詳しく載っているのでこれを読めば入門としては完了するかも
TypeScript早わかりチートシート【1.5.3対応】 - Build Insider

英語ですが、ES6向けで参考になります
Exploring ES6

11
7
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
7