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