Intl.NumberFormat で通貨コード指定しつつ記号表示・記号位置をロケール準拠にする
TypeScript
フロントエンド
バックエンド
多言語の金額表示では、記号をハードコーディングするより Intl.NumberFormat(locale, { style: 'currency', currency, currencyDisplay: 'symbol' }) を使うと、表示は JPY などのコードではなく記号(¥/$/€)になり、かつ記号の位置(前置/後置)もロケール準拠に自動調整される。通貨コード自体は「どの通貨としてフォーマットするか」を決めるために内部指定が必要。言語コード→通貨コードの解決関数は ts-pattern の match().exhaustive() で網羅性を型で担保すると、未対応言語が増えたときコンパイル時に検知できる。