💻 Dev

🛠️ 처음부터 만드는 Omit — 객체에서 특정 키 제외하기

# 개념
`Pick`은 필요한 키만 선택하는 반대로, `Omit`은 제외하고 싶은 키를 빼는 유틸리티입니다. API 응답에서 민감한 정보를 제거하거나 특정 필드만 전달할 때 유용합니다.

문제 상황


```javascript
const user = {
id: 1,
name: "Alice",
email: "alice@example.com",
password: "secret123",
createdAt: "2025-01-01"
};
// password와 createdAt은 제외하고 싶다면?
```

기본 구현


```javascript
function omit(obj, keysToRemove) {
const result = {};
for (const key in obj) {
if (!keysToRemove.includes(key)) {
result[key] = obj[key];
}
}
return result;
}
const safeUser = omit(user, ['password', 'createdAt']);
// { id: 1, name: "Alice", email: "alice@example.com" }
```

TypeScript 버전


```typescript
function omit(obj: T, keys: K[]): Omit {
const result: any = {};
for (const key in obj) {
if (!keys.includes(key as K)) {
result[key] = obj[key];
}
}
return result;
}
```

실전 예제


```javascript
// API 응답에서 민감한 정보 제거
const apiResponse = { ...userData, internalId: 123, debugInfo: {} };
const clientResponse = omit(apiResponse, ['internalId', 'debugInfo']);
// 폼 데이터에서 특정 필드 제외
const submitData = omit(formData, ['metadata', 'temp']);
```

주의


TypeScript 3.5+는 `Omit`를 내장 유틸리티로 제공합니다. 프로덕션에서는 자신의 구현 대신 표준 타입을 사용하세요.
참고: [TypeScript Utility Types](https://www.typescriptlang.org/docs/handbook/utility-types.html)
💬 0
👁 0 views

Comments (0)

💬

No comments yet.

Be the first to comment!