Edited at

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

More than 1 year has passed since last update.

今更感はありますが、やっと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