TypeScriptを書いていく中でふと疑問に思ったので調べてみました。 皆さんはinterface派とtype派どっち派ですか? interfaceとtypeどっち使えばいいのか問題の前に、これらは一体何をするものかを説明したいと思います。 interface クラスが実装すべきフィールドやメソッドを定義した型です。クラスはインターフェースを実装することで、インターフェースが求めるメソッド名や引数の型に則っているかをチェックすることができます。 interfaceの宣言 インターフェースを宣言するにはinterfaceキーワードを使います。
![interfaceとtypeどっち使えばいいのか問題。](https://cdn-ak-scissors.b.st-hatena.com/image/square/8dddd2efd2d362cd672718bdc2da8a9db50d2928/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--C3rY3cN0--%2Fco_rgb%3A222%252Cg_south_west%252Cl_text%3Anotosansjp-medium.otf_37_bold%3AWatataku%252Cx_203%252Cy_98%2Fc_fit%252Cco_rgb%3A222%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_70_bold%3Ainterface%2525E3%252581%2525A8type%2525E3%252581%2525A9%2525E3%252581%2525A3%2525E3%252581%2525A1%2525E4%2525BD%2525BF%2525E3%252581%252588%2525E3%252581%2525B0%2525E3%252581%252584%2525E3%252581%252584%2525E3%252581%2525AE%2525E3%252581%25258B%2525E5%252595%25258F%2525E9%2525A1%25258C%2525E3%252580%252582%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vemVubi9pbWFnZS9mZXRjaC9zLS1tZXFZdnRMSC0tL2NfbGltaXQlMkNmX2F1dG8lMkNmbF9wcm9ncmVzc2l2ZSUyQ3FfYXV0byUyQ3dfNzAvaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2NhZTEzMWMzMzkuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_72%2Fv1627274783%2Fdefault%2Fog-base_z4sxah.png)