Skip to content

Commit

Permalink
road: isNil을 보면서
Browse files Browse the repository at this point in the history
  • Loading branch information
jgjgill committed Jun 17, 2024
1 parent 50319ba commit 0d8479b
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions roads/2024/06/17.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: 'isNil을 보면서'
date: '2024-06-17'
slug: '2024-06-17'
type: 'road'
---

## isNil이란?

최근 Toss 라이브러리를 통해 공부하면서 여러 유틸리티 함수들을 접하고 있다.

그러면서 `isNil`이라는 함수도 알게 되었다.

`isNil`은 주어진 값이 `null`이나 `undefined`인지 확인하는 함수이다.

```ts
isNil(null) // true
isNil(undefined) // true
isNil(1) // false
```

## 같은 역할, 다른 코드

단순한 기능인 만큼 코드도 간단하지만 `isNil`을 제공하는 라이브러리들의 코드를 살펴보면 모두 동일하지는 않다.

```ts
export function isNil(x: unknown): x is null | undefined {
return x === null || x === undefined
}
```

가장 먼저 떠오른 형태이며 요구 사항과 정확하게 일치한다.

<br />

```ts
export function isNil<T>(val: T | undefined | null): val is null | undefined {
return val == null
}
```

`null`과 동등 연산자를 활용했다.
전자와 비교했을 때 더 단순하게 표현되었다.

<br />

개인적으로는 전자의 경우가 더 명시적이다는 느낌을 받아서 전자가 좋다. 🧐

0 comments on commit 0d8479b

Please sign in to comment.