[typescript] 타입 가드 예제 코드

// 타입 별칭 정의 type Car = { brand: string; model: string; year: number; };

// 타입 가드 함수 function isCar(obj: any): obj is Car { return ( typeof obj === ‘object’ && ‘brand’ in obj && ‘model’ in obj && ‘year’ in obj ); }

// 사용 예 function displayCarDetails(obj: any) { if (isCar(obj)) { console.log(Brand: ${obj.brand}, Model: ${obj.model}, Year: ${obj.year}); } else { console.log(‘Not a valid car object’); } }

let car1 = { brand: ‘Toyota’, model: ‘Camry’, year: 2020 }; let car2 = { brand: ‘Honda’, model: ‘Civic’ };

displayCarDetails(car1); // 출력: Brand: Toyota, Model: Camry, Year: 2020 displayCarDetails(car2); // 출력: Not a valid car object ``` 위 코드는 타입 가드의 예제입니다. 타입 가드는 TypeScript에서 런타임에서 객체의 타입을 검사하여 타입 안전성을 보장하는 메커니즘입니다. 타입 가드는 보통 타입 별칭과 함께 사용되며, 예제에서는 Car라는 타입 별칭과 isCar라는 타입 가드 함수를 정의하고 활용하고 있습니다.

isCar 함수는 객체가 Car 타입인지를 판단하고 obj is Car 형태의 반환 값을 가지며, 이러한 방식으로 해당 객체를 Car 타입으로 캐스팅합니다. 실제 사용 예에서 displayCarDetails 함수는 인자로 전달된 객체가 Car 타입인지를 확인하여 적절한 처리를 수행하고 있습니다.

참조: TypeScript 공식 문서 - 타입 가드