[typescript] 타입 가드의 효율적인 사용 방법
타입스크립트(TypeScript)에서 타입 가드(Type Guards)는 특정 조건을 만족하는 변수의 타입을 좁힐 수 있는 강력한 도구입니다. 이러한 타입 가드를 효율적으로 활용하는 방법을 알아보겠습니다.
1. 타입스크립트의 타입 가드란?
타입 가드는 특정 조건에 따라 변수의 타입을 좁히는 역할을 합니다. 이를 통해 런타임 시 타입 안전성을 보장하고 코드의 가독성을 높일 수 있습니다. 주로 typeof
, instanceof
, in
연산자를 이용하여 타입 가드를 구현합니다.
1.1. typeof
를 이용한 타입 가드
function printValue(value: string | number) {
if (typeof value === 'string') {
console.log(value.toUpperCase());
} else {
console.log(value.toFixed(2));
}
}
1.2. instanceof
를 이용한 타입 가드
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
woof() {
console.log('Woof!');
}
}
class Cat extends Animal {
meow() {
console.log('Meow!');
}
}
function petSound(animal: Dog | Cat) {
if (animal instanceof Dog) {
animal.woof();
} else {
animal.meow();
}
}
2. 타입 가드의 효과적인 활용 방법
2.1. 유니온 타입에서의 타입 가드 활용
interface Bird {
fly(): void;
}
interface Fish {
swim(): void;
}
function move(animal: Bird | Fish) {
if ('fly' in animal) {
animal.fly();
} else {
animal.swim();
}
}
2.2. 사용자 정의 타입 가드
function isString(value: any): value is string {
return typeof value === 'string';
}
function processValue(value: any) {
if (isString(value)) {
console.log(value.toUpperCase());
} else {
console.log(value.toFixed(2));
}
}
결론
타입 가드는 타입스크립트 코드를 더욱 안전하고 가독성 있게 만드는 강력한 도구입니다. typeof
, instanceof
, in
연산자를 적절히 활용하거나 사용자 정의 타입 가드를 만들어서 코드를 더욱 효율적으로 작성할 수 있습니다.
참고 자료: TypeScript 공식 문서
이상으로 타입 가드의 효율적인 활용 방법에 대해 알아보았습니다. 감사합니다!
위 포스트는 타입스크립트에서 타입 가드를 효율적으로 사용하는 방법에 대해 다루고 있습니다. 각각의 타입 가드 예시를 들어가며 쉽고 명확하게 설명한 것이 인상적입니다. 이 포스트를 통해 타입 가드에 대한 이해를 높일 수 있을 것입니다.