jgjgill

isNil을 보면서

No Filled

isNil이란?

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

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

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

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

같은 역할, 다른 코드

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

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

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


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

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


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

@2023 powered by jgjgill