TypeScriptの型チェック

こんにちは。KOUKIです。

JavaScriptの型チェックについて、以前記事にしました。

本記事では、TypeScriptの型チェックについて記事にします。

学習まとめ

環境構築

以下の記事で作成したプロジェクトを使います。
※TypeScriptが動けば問題ありません

Union型をチェックする

以下のようなインターフェースがあるとします

Union型として作成したAnimalにアクセスする関数を作りたいとします。

しかし、これはエラーになります。

引数として渡したオブジェクトにflyingSpeedが存在するかTypeScriptが判断できないためです。

このような場合は、JavaScriptの型チェックでも学んだ「in」演算子などを使います。※タイプガードと言うようです

これでエラーは消えますが、プロパティやメソッドが増えるごとに分岐処理を追加しなくてはならないため、不便ではあります。

また、タイプミスなども怖いですね。

そのような場合は、以下のようにします。

interfaceに共通のプロパティを定義し、呼び出し元の関数にswitch文で分岐処理を書いてあげればOKです。

interfaceは実装先のクラスにプロパティやメソッドを強制するので、「判定したいものが実装されていない」という事を防いでくれます。

おわりに

TypeScriptの型チェックも慣れるまでは大変だと思います。

しかし、型チェックを使いこなせれば、堅牢性の高いシステムを組み上げることができると思いますので、よければ参考にしてください。

私も引き続き、勉強します^^

それでは、また!

参考書籍