結論 TypescriptのBrand型を利用してNominal Typingを行うことで、特定の型しか受け付けない関数を作ることができる。 ある日 ワイ: 「あぁ〜娘ちゃん、ヘルプやで。UUIDしか受け付けへん関数つくったんやけど、UUIDちゃう文字列を入れてしもたらエラーになってもうて…」 娘ちゃん: 「うわー、それは大変だったね。でもちょっと、具体的にどんなコード書いたの?」 ワイ: 「せやな…こんなんや。」 ワイ: 「これでUUIDしか受け付けへんようにしたいんやけど、何かあかんのかな?」 娘ちゃん: 「うーん、確かに問題あるね。それだとstring型なら何でも受け付けちゃうよ。UUIDだけじゃなくてね。」 ワイ: 「ほんまに? でも、どうすればええんや?」 娘ちゃん: 「それならTypescriptのType Aliasという機能を使ってNominal Typingをするといいん