[TypeScript] type guard 만드는 방법
type guard
타입스크립트에서 변수의 타입을 판단할 때, 주로 타입 가드(Type Guard)를 활용합니다.
원시 값, 배열, 날짜 객체 등을 판단하는 경우, 다음과 같은 타입 가드를 사용할 수 있습니다.
원시 값, 배열, 날짜 객체 판단하는 방법
function isNumber(value: any): value is number {
return typeof value === "number";
}
function isString(value: any): value is string {
return typeof value === "string";
}
function isBoolean(value: any): value is boolean {
return typeof value === "boolean";
}
function isSymbol(value: any): value is symbol {
return typeof value === "symbol";
}
function isNull(value: any): value is null {
return value === null;
}
function isUndefined(value: any): value is undefined {
return value === undefined;
}
function isArray(value: any): value is any[] {
return Array.isArray(value);
}
function isDate(value: any): value is Date {
return value instanceof Date;
}
사용하는 방법
let testValue: any;
// Number 타입 테스트
testValue = 123;
if (isNumber(testValue)) {
console.log("Number 타입입니다.");
} else {
console.log("Number 타입이 아닙니다.");
}
// String 타입 테스트
testValue = "hello";
if (isString(testValue)) {
console.log("String 타입입니다.");
} else {
console.log("String 타입이 아닙니다.");
}
// Boolean 타입 테스트
testValue = true;
if (isBoolean(testValue)) {
console.log("Boolean 타입입니다.");
} else {
console.log("Boolean 타입이 아닙니다.");
}
// Symbol 타입 테스트
testValue = Symbol("test");
if (isSymbol(testValue)) {
console.log("Symbol 타입입니다.");
} else {
console.log("Symbol 타입이 아닙니다.");
}
// Null 타입 테스트
testValue = null;
if (isNull(testValue)) {
console.log("Null 타입입니다.");
} else {
console.log("Null 타입이 아닙니다.");
}
// Undefined 타입 테스트
testValue = undefined;
if (isUndefined(testValue)) {
console.log("Undefined 타입입니다.");
} else {
console.log("Undefined 타입이 아닙니다.");
}
// Array 타입 테스트
testValue = [1, 2, 3];
if (isArray(testValue)) {
console.log("Array 타입입니다.");
} else {
console.log("Array 타입이 아닙니다.");
}
// Date 타입 테스트
testValue = new Date();
if (isDate(testValue)) {
console.log("Date 타입입니다.");
} else {
console.log("Date 타입이 아닙니다.");
}
위처럼 하면 간단하게 타입을 확인할 수 있습니다.
반응형
'공유 > JavaScript, TypeScript' 카테고리의 다른 글
[JavaScript] Array.isArray 함수 사용 (0) | 2024.06.24 |
---|---|
[JavaScript] DayJS Timezone 다루는 방법 (0) | 2024.03.17 |
[TypeScript] 타입스크립트 union 타입 합치기 (0) | 2024.01.16 |
[JavaScript] Binary 데이터 이미지로 변환하기 (0) | 2022.09.23 |
[dayjs] dayjs를 이용하여 Date 객체 잘 다루기 (0) | 2022.09.17 |