TypeScript初心者向け勉強会 TypeScript初心者向け勉強会
http://kubosho.github.io/slides/tsbeginner/
JavaScriptによる大規模アプリケーション開発の為にTypeScriptが生まれた
-
型 変数や引数に型指定が可能 プリミティブ、オブジェクト型 なんでもいれられるany
var name: string = 'hoge';
型指定を省略した場合は型推論により変数の型が決まる
-
クラス ECMAScript6で提案されているクラスを採用 よりオブジェクト指向で採用されているクラスの書き方
-
モジュール exportの有無により外部に公開するかしないかを module
-
インターフェース クラスの振る舞いを外部で指定 interface implement: インターフェースを継承
型がある事でどんな値が入るのか想定可能 プログラムの設計をきちんとするようになる 結果的にデバッグやテストがしやすくなる
大規模サービス / コードの行数が200行までに収まるようなライブラリ
jQueryとか読み込む際は、定義ファイルを読み込む d.ts 型情報のリポジトリ: borisyankov/DefinitelyTyped
いつTypeScriptを始めるのか TypeScriptを使ってみたり // Speaker Deck
- 今じゃない
まだ結構変更がある - 更新頻度高い わりと重い コマンドライン引数なくなったり
jsベースの人が手を出すなら、v.1.0を待ったほうが良い
-
静的言語がベースの人 エディタのサポートが得られる 静的言語の概念がそのまま使える
-
複数人の開発 型がある事で他人のコードがいじりやすい コード間の整合性がとれる 型情報がドキュメントに 静的言語の概念の上に構築されていれば理解しやすい(「きれいな設計」がどういったものか分かる)
-
長くメンテナンスする可能性が高い人 コードを減らす
こてまでJSを書いてきた人には刺さらない気がする 他言語からの呼び水としてはありそう 独自の言語圏になりそう 型情報を外してES6 simとしてだけ使うオプションとか出るんじゃないか
動くドキュメントとしては便利 TypeScriptぽく書くには多少慣れが必要 WebStormの警告がコンパイラの警告と違ったりする 型情報書いていないライブラリもあるのでOSSにコミットしてみたい人とかにはオススメ
コンパイル遅いなら --noResolve引数を: 型参照見ずにコンパイル
Delphiが作成したから使うって理由でもいいんじゃ?
MS発だし 型がある事によって、IDEとの組み合わせが強力 ゆるやかな型の扱いからお堅いところまで(interfaceかたGenericsまで)
-
Node.js npm install
-
エディタ WebStorm 強力な補完の恩恵を受けたいなら
-
IDEで変数定義に飛んだりとかデバッグがやりやすい
-
簡単に使えるモジュールがある 要するに名前空間
-
function _this that self他を書かなくて済む イベントハンドラに突っ込んだらthisが期待していた値と違うといったのがない
-
メソッドの引数で返ってくる型が決まる
jQueryを使用していて$(this)が動かない 特定の型にキャストしたい 外部のライブラリを使用する際に使いずらい
///
- ジェネリックスとは
class Hoge <これ> {
}
型を外部から渡せるようにしたもの 動的言語には無縁 - ムシしても良い
- 任意の型を受け取って返す場合
- anyを使うと型情報が失われる
- 型変換は実行時エラーになる
class Hoge <T> {
var value: T;
get (): T {
return ...
}
set (value: T) {
}
}
var hoge= new <string> Hoge();