項目19 異なる型には異なる変数を使う
TypeScriptは変数の値は変えられるが、型は一般的に変わらない
変数の型は、一番最初に登場した値の型で決定される
code:ts
let productId = "12-34-56";
productId = 123456; // productIdはstring型と推論される
変化するケースとしては、型の絞り込みの影響がある
これは、型が小さくなるのであって、新しい値を含むように大きくなることではない
変数は再利用することを避け、適した命名で適した型を割り当てるようにする
読み手や型チェッカーの混乱を避けるため
基本的にシャドウイングは避け、異なる概念には異なる名前を使うようにする code:ts
// ❌️
const productId = "12-34-56";
fetchProduct(productId);
{
const productId = 123456; // OK
fetchProductBySerialNumber(productId); // OK
}
ESLintのno-shadowのようなルールを使って禁止するのが良い