타입스크립트
아이템 20- 다른 타입에는 다른 변수 사용하기
rosaleee
2023. 3. 14. 15:35
타입스크립트에서는 변수에 값을 재할당할 때, 변수를 초기화할 때 지정한 타입과 다른 타입의 값을 할당하면 오류가 발생합니다.
function fetchProduct(id: string) { /* ... */ }
function fetchProductBySerialNumber(id: number) { /* ... */ }
let id = "12-34-56";
fetchProduct(id);
id = 123456; // '123456' is not assignable to type 'string'.
fetchProductBySerialNumber(id);
// ~~ Argument of type 'string' is not assignable to
// parameter of type 'number'
위의 오류를 해결하기 위해 id
의 타입을 string | number
와 같은 유니온 타입으로 변경할 수 있지만, 이러한 타입은 간단한 string
이나 number
타입에 비해 다루기가 더 어렵습니다.
이럴 때는 별도의 변수를 도입하는 것이 더 바람직합니다.
function fetchProduct(id: string) { /* ... */ }
function fetchProductBySerialNumber(id: number) { /* ... */ }
const id = "12-34-56";
fetchProduct(id);
const serial = 123456; // OK
fetchProductBySerialNumber(serial); // OK
이렇게 별도의 변수를 도입하면 다음과 같은 장점을 가질 수 있습니다.
- 서로 관려이 없는 두 개의 값을 분리합니다. (
id
와serial
) - 변수명을 더 구체적으로 지을 수 있습니다.
- 타입 추론을 향상시키며, 타입 구문이 불필요해집니다.
- 타입이 좀 더 간결해집니다. (
string | number
대신string
과number
사용 ) let
대신const
로 변수를 선언하게 되어 코드가 간결해지고, 타입 체커가 타입을 추론하기에도 좋습니다.
따라서 타입이 다른 값을 다룰 때는 변수를 재사용하지 않고 별도의 변수명을 사용하는 것이 좋습니다.