😦

TypeScript学習のメモ(2)

2020/10/28に公開

TypeScript学習ロードマップでの学習と結果

引き続きTypeScript学習の記事のLevelに合わせて進める。

Level1

1.3まで学習した部分があるため割と読める。

1.4 TypeScript Deep Drive

かなり解説が詳しい。オライリーの本を読んでいるようだ…。

1.4.1 Javascript/モダンなJavascriptの機能

  • nullチェックのイディオム
function foo(arg: string | null | undefined) {
  if (arg != null) {
    // `!=` がnullとundefinedを除外しているので、引数argは文字列です
  }
}
  • Booleanとして扱うことを明示的にする
    The !! patternだけどJSだとESLintで怒られた気が。
    ESLint試したけど大丈夫でした。

  • 分割代入の応用
    数値の入れ替え。若干悪いコードような気もするけど、特に指摘ができない。

var x = 1, y = 2;
[x, y] = [y, x];
console.log(x, y); // 2,1

分割代入とスプレット演算子は便利なので、練習問題をいくつか解いて身につけておきたい。

  • promise
    TSでpromiseを返す関数の場合、型定義はPromise<any>とするのが作法?
    そんな事なくて、resolveする値で定義できる。:Promise<string>とか。

  • async/await
    遅延評価いまいち使ったことなかったけど、よく理解できた。

1.4.2 プロジェクトの環境設定/Node.js & TypeScriptのプロジェクト作成

  • Typescriptの自動コンパイル
    windowsのVagrant環境だとnodemonがファイル変更を検出しない。
    この記事よると、オプションでlegacy-watchを付与すると良いようだ。うまくいった。
    vagrant設定を詰めればこういうファイル監視系がうまく動かないのが解消できるかも。

1.4.3 TypeScript型システム

とりあえず一通り読んだ。

1.4.x

その他気になるところだけつまみ食い。
テストとツール類についての精査は別途行う。

level2へ続く。

Discussion