-
아이템 20- 다른 타입에는 다른 변수 사용하기타입스크립트 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
로 변수를 선언하게 되어 코드가 간결해지고, 타입 체커가 타입을 추론하기에도 좋습니다.
따라서 타입이 다른 값을 다룰 때는 변수를 재사용하지 않고 별도의 변수명을 사용하는 것이 좋습니다.
'타입스크립트' 카테고리의 다른 글
아이템 22 - 타입 좁히기 (0) 2023.03.14 아이템 21 - 타입 넓히기 (0) 2023.03.14 아이템 19 - 추론 가능한 타입을 사용해 장황한 코드 방지하기 (0) 2023.03.14 아이템 13 - 타입과 인터페이스의 차이점 알기 (0) 2023.03.07 아이템 12 - 함수 표현식에 타입 적용하기 (0) 2023.03.07 - 서로 관려이 없는 두 개의 값을 분리합니다. (