さとうです!
今日、SNSでこんなものを見かけました。
https://x.com/yumemiinc/status/1721332498465276003?s=20
このコードをレビューしてみようと思います!
const alertPrice = (price: number) => {
const tax = 0.1;
const priceWithTax = price + price * tax;
const message = `税込金額は${priceWithTax}円です。`;
alert(message);
}
税込金額を計算して画面に表示する、ということをやっていますね!
では、いくつか指摘してみましょう!
まず僕が気になったのは、number型を使っているところです。
const alertPrice = (price: number) => {
TypeScriptのnumber型は大きい値を受け取ることができますが、最大値を受け取ってしまった場合、計算する部分でエラーが発生しそうです。
// number型で定義されている最大値(9007199254740991)を超えてしまう可能性がある。
const priceWithTax = price + price * tax;
このようなことがあるため、基本データ型をそのまま使うのではなく、ValueObjectを受け取るようにしましょう。
// ValueObjectを受け取る
const alertPrice = (price: Price) => {
このValueObjectのコンストラクターで最大値を設定するようにしましょう!
次に気になったのは、taxを宣言している部分です。
const tax = 0.1;