おおざっぱな感想
- 現在、最も詳しく、丁寧で分かりやすい
- ジョークが散りばめられ、飽きが来ない工夫
- 例:変性についてかなりのページを割いている
公式や 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 では型と値が別々の名前空間に存在する。同スコープに同名で存在すると結び付けられる
- P120, 121. 要約:実行された結果、内部でスーパータイプが要求され、本当に実行できるか(破壊的な更新があるか)は見ないからオコしないよ!
- 11 章 JavaScript との相互運用
- 近代までの歴史が学べて面白いです