カテゴリ: notes

オライリー プログラミングTypeScriptレビュー

おおざっぱな感想

  • 現在、最も詳しく、丁寧で分かりやすい
  • ジョークが散りばめられ、飽きが来ない工夫
    • 例:変性についてかなりのページを割いている

公式や Deep Dive より丁寧に説明されています。分かったつもりになっていた箇所の理解が深まりました。

また、それぞれのメリット、デメリットなど実践的な内容が盛り込まれた本になっています。

章の最後には問題もついていて、理解度チェックになります。

自分用めも(誤っている可能性あり)

  • 3 章 型について
    • P18. 型の階層構造の図
  • 4 章 関数
    • P59. 型レベル・値レベルの定義
    • P61. 4.1.9 完全な型シグネチャの説明
    • P69. object はオブジェクトの形状について語らない
    • P71. ジェネリックとはの説明が良い
    • P72. 4.2.2 ジェネリックの宣言
    • P73. 読者に問いかける良い問題
    • P76. 4.2.3 引数から型が判別できない場合は、明示的に指定が必要
    • P79. 1 型の互換性
  • 5 章 クラスとインターフェース
    • P92. TypeScript のクラスのまとめ
    • P95. 5.3 this による型付け
    • P96. 型エイリアスとインターフェースの違い
    • P98. インターフェースを使ったジェネリック宣言は、ジェネリックが同一である必要
    • P101. インターフェースの実装 VS 抽象クラスの実装
    • P102. クラスは構造型付け
    • P103. let c: C この C はインスタンスを指している
    • P103. typeof C クラス自身を指している
    • P105. 5.7 デフォルト型については 4.2.6 参照
    • P105. 5.7 ジェネリック制限については 4.2.5 参照
    • P105. 5.7 <K1 | K1, V1 | V1 > ← 理解できないまま。クラスレベルと独自を時ううに使えるくらいの意味?
  • 6 章 高度な型
    • P120, 121. 要約:実行された結果、内部でスーパータイプが要求され、本当に実行できるか(破壊的な更新があるか)は見ないからオコしないよ!
      でもでも、スーパータイプ渡したらオコダヨー
    • P121. 「継承が進む方向を共変」と覚えておくと楽
    • P121. 共変:型の制限を強める。対象範囲を狭める
    • P121. 反変:型の制限を弱める。対象範囲を広げる
    • P121. 包含図を思い浮かべる癖をつける。◎ ↑ 反変 ↓ 共変
    • P121. 「形状(オブジェクトクラス)はそれらのプロパティの型に関して共変〜」は、
      形状(オブジェクトクラス)を渡す時は対象範囲の狭いもの、共変しか渡せないよの意味
    • P124. 前半でもドリチが共変でなくてはいけないを説明している(:x に注目)
    • P124. f() に突っ込んで、Bird のメンバ実行できるもの。Bird, Crow。共変であるべき。Animal は Bird に対して共変でない。共変でないと Bird にあるものが実行できない
    • P124. new Bird() を渡してやれること。つまり Animal, Bird。パラメータは反変であるべき。Crow は Bird に対して反変でない。できるはずが、反変でないとないものが実行される可能性。
    • P125. パラメータは反変でないといけない。同等かより範囲の広いものが要る
    • P126. const Hoge = {Foo. Bar} に対して、function Fuga(f: Hoge) {}
    • P126. Fuga(100) でも動く(通過する)のが危険と示唆
    • P126. 反変なものしか入らないので、「A : B <: B」
    • P129. 過剰プロパティチェックは、フレッシュなオブジェクトリテラル型を割り当てするとき実行される。as 型アサーションを変数に割り当てるとフレッシュさは消滅する。(フレッシュなオブジェクトリテラル型は通常のオブジェクト型に拡大される)
    • P129. フレッシュ(新鮮)なオブジェクトリテラル型とは、オブジェクトリテラルから TypeScript が推論する型
    • P133. そうか型の絞り込みには return も要るね。ガードされる保証のために
    • P133. 形状だと重複したものが入ってくる可能性があり、絞り込めない。そこでタグ付け。ユニークなリテラル型(値)で判別できる
    • P145. TypeScript では型と値が別々の名前空間に存在する。同スコープに同名で存在すると結び付けられる
  • 11 章 JavaScript との相互運用
    • 近代までの歴史が学べて面白いです

About

はらぺこ

職業:フロントエンドエンジニア
趣味:自転車/テニス/空手
愛車:
 ✓ブリヂストン オルディナs5
 ✓アンカー RS8 EL

神戸にて爆誕。
友人から「お前がマスターして教えてくれ」と渡された『HTML&スタイルシート ポケットリファレンス』がキッカケでWeb業界への一歩を踏み出す事になる。

2013年7月にクロスバイクを購入して自転車にドハマリする。
全力で遊ぶ合間に、ほどほどに頑張る日々を過ごしています。

飼い主 はっぴー

2014年10月20日(誕生日)の引っ越し日、捨て猫になっていた所、運命の出会いを果たす。 
(その日は雨で、3日間雨が続く寒い日だった。このまま放っておけないと自転車生活と秤にかけて、はっぴーを選択する)
5時間かけて油断させ、近づいてきた所をガッと拾い上げ、そのまま家へ猛ダッシュ、玄関の鍵を閉めて家族になる。以後オレたちはファミリーだ。

助けたつもりが、実際は自分の方が精神的に救われている。はっぴーなしでは生きていけない。(最早「飼い主」と言って差し支えないだろう)

「はっぴー」という名前の由来は、『幸せになってほしい』という想いで名付けた。