型と集合
詳しくは後ほどやるのですが、ここでとりあえずTypeScriptの型と集合の関係性について結論だけ述べておきます。
- TypeScriptにおける型は集合である
(正確にどうかは知りませんが、そうであるかの様に動きます)
また、ある型Aと型Bがあって集合としてみた時にBがAの部分集合である時、BはAの部分型であると言います。
そしてこれに基づいてTypeScriptのルールを述べておくと
- 型Aの値を型Bに代入できる = 型Aが型Bの部分型である
- ただしanyと関数の型については
- anyにはルールがない
- 関数の型には別のルールが存在する