カブクでアルバイトをしている長瀬です。 今回は、degree と rad, EUR と JPYなど、ついつい間違ってしまいがちな概念を型レベルで区別するためのアプローチを紹介します。 tl; dr @fsubalさんの「TypeScript で幽霊型っぽいものをつくる」という記事で紹介されているやり方を使うとよい 一方で、PureScriptなどのプログラミング言語には、既存の型1つをラップして新しい型をつくるために newtype というキーワードがある TypeScriptは言語レベルではnewtypeをサポートしていないが、ライブラリとして newtype-tsがある。 newtype の本来の目的に加えて、その型で”正の値”, “0でない”などの条件をmonadicに表現することができる そのため内部表現に変換することになり、若干の実行時オーバーヘッドがある。必要でないなら@fsu
![TypeScript で “radian” と “degree” を間違えないようにする - 株式会社カブク](https://cdn-ak-scissors.b.st-hatena.com/image/square/4b9eb9788866aca927d151a661c7e2803f05106f/height=288;version=1;width=512/https%3A%2F%2Fwww.kabuku.co.jp%2Fwp%2Fwp-content%2Fuploads%2F2019%2F02%2FUVqXGZ6.png)