April 2025
Intermediate to advanced
448 pages
6h 50m
Japanese
any型プログラミング言語における型は伝統的には、完全に静的か完全に動的かの二択でした。オプション的かつ漸進的な型システムを持つTypeScriptは、この境界線を曖昧にしました。TypeScriptでは、プログラムの一部にだけ型を追加し、他の部分には追加しなくても、まったく問題ありません。
この性質は、既存のJavaScriptコードベースを少しずつTypeScriptに移行していくためには不可欠です(「10章 コードのモダン化とTypeScriptへの移行」)。その鍵となるのが、コードの一部の型チェックを効果的に無効化するany型です。これは強力であると同時に悪用されやすいです。any型の賢い使い方を学ぶことは、効果的なTypeScriptを書くためにきわめて重要です。この章では、anyの恩恵を享受しつつ、そのデメリットを抑える方法を説明します。
より一般的な問題として、シンボルの静的な型と実行時の型に互換性がないことを指す不健全性があり、any型はそのもっとも極端な例にすぎません。コードからすべてのany型を取り除いたとしても、健全性の罠にはまる危険性は残ります。「項目48 健全性の罠を回避する」では、そのような罠をいくつか紹介し、それを避ける方法を示します。
any型を使う次のようなコードがあるとします。
declarefunctiongetPizza():Pizza;functioneatSalad(salad:Salad){/* ... */}functioneatDinner(){constpizza=getPizza();eatSalad(pizza);// ~~~~~
Read now
Unlock full access