見出し画像

isNullOrUndefinedメソッドを作ってみました

こんにちわ。nap5です。

isNullOrUndefinedメソッドを作ってみましたので、紹介したいと思います。

import { Chance } from "chance";
import { z } from "zod";

const UserSchema = z.object({
  id: z.number(),
  name: z.string(),
});

const UserDataSchema = UserSchema.deepPartial().nullish();

type UserData = z.infer<typeof UserDataSchema>;

const isNullOrUndefined = (data: unknown): data is null | undefined => {
  if (data === null || data === undefined) {
    return true;
  }
  return false;
};

const falsyValue = () => (Chance().bool() ? null : undefined);

const data: UserData = Chance().bool()
  ? {
      id: 37458,
      name: "cowboy",
    }
  : falsyValue();

(() => {
  if (isNullOrUndefined(data)) {
    console.log(data); // undefined or null
    return;
  }
  console.log(data.id); // neatValue
})();


デモコードです。


簡単ですが、以上です。

いいなと思ったら応援しよう!