타입스크립트는 데이터 유효성을 강력하게 검사할 수 있는 기능을 제공합니다. 이를 통해 컴파일 시점에 데이터 유효성을 확인하여 런타임 에러를 방지할 수 있습니다.
이번 블로그에서는 타입스크립트의 제네릭을 활용하여 데이터 유효성을 검사하는 방법에 대해 살펴보겠습니다.
1. 제네릭을 사용한 데이터 유효성 검사
제네릭을 이용하면 재사용성이 뛰어나며, 타입 안정성을 보장할 수 있습니다. 아래는 간단한 예제를 통해 제네릭을 사용하여 데이터 유효성을 검사하는 방법을 확인해보겠습니다.
type ValidateResult<T> = {
valid: boolean;
message: string;
data: T | null;
};
function validateData<T>(data: T, validator: (data: T) => boolean, errorMessage: string): ValidateResult<T> {
if (validator(data)) {
return { valid: true, message: 'Data is valid', data };
} else {
return { valid: false, message: errorMessage, data: null };
}
}
// Usage
const email = 'example@example.com';
const emailValidator = (email: string) => /\S+@\S+\.\S+/.test(email);
const validationResult = validateData<string>(email, emailValidator, 'Invalid email format');
console.log(validationResult);
위 예제에서 ValidateResult
는 유효성 검사 결과를 담는 타입입니다. validateData
함수는 제네릭을 이용하여 인자로 전달된 데이터를 주어진 유효성 검사 함수를 통해 검사하고, 그 결과를 ValidateResult
타입으로 반환합니다.
2. 제네릭을 활용한 보다 복잡한 유효성 검사
제네릭을 사용하면 보다 복잡한 데이터 구조에 대한 유효성 검사도 쉽게 구현할 수 있습니다. 아래 예제는 객체의 각 필드에 대한 유효성을 확인하는 validateObject
함수를 제네릭을 사용하여 구현한 것입니다.
type ValidationResult<T> = {
valid: boolean;
message: string;
data: T | null;
};
function validateObject<T>(obj: T, validators: { [K in keyof T]: (value: T[K]) => boolean }): ValidationResult<T> {
for (const key in validators) {
if (!validators[key](obj[key])) {
return { valid: false, message: `Invalid value for ${key}`, data: null };
}
}
return { valid: true, message: 'Object is valid', data: obj };
}
// Usage
const user = {
name: 'John Doe',
age: 30,
email: 'john.doe@example.com'
};
const userValidators = {
name: (name: string) => name.length > 0,
age: (age: number) => age > 0,
email: (email: string) => /\S+@\S+\.\S+/.test(email)
};
const validationResult = validateObject(user, userValidators);
console.log(validationResult);
위 예제에서는 validateObject
함수를 통해 사용자 객체의 각 필드에 대한 유효성을 확인하고, 그 결과를 ValidationResult
타입으로 반환합니다.
제네릭을 이용하면 데이터의 유효성을 강력하게 보장할 수 있으며, 코드의 가독성과 재사용성을 높일 수 있습니다.
타입스크립트 제네릭을 활용하여 데이터 유효성을 검사하는 방법에 대해 알아보았습니다. 제네릭을 적절히 활용하여 데이터 유효성 검사 로직을 간결하게 구현하고, 안정적인 코드를 작성하는 데 도움이 되길 바랍니다.
참고 자료:
이상으로 타입스크립트 제네릭을 이용한 데이터 유효성 검사 방법에 대한 내용을 마치도록 하겠습니다. 감사합니다.