4

TLDR;

これでよろしいですか?それとも悪い習慣ですか?

function isUndefined (payload: any): payload is undefined | void {
  return payload === undefined
}

環境

undefinedTypeScript には、何かまたはまたはのいずれかを返すことができる関数がありますvoid

変更されたペイロードを返すことができるイベント ハンドラーのようなもの、または開発者がペイロードを変更しない場合に備えて、何も返さないか未定義を返すことを選択できます。

function eventHandler <T extends {[key: string]: any}> (payload: T): Modified<T> | undefined | void {
  // ... implementation
}

次に、void または undefined 以外を返すかどうかを確認する必要がある型チェッカーがあります。

const result = eventHandler(payload)

if (result !== undefined) {
  // we have a modified payload!
}

result !== undefinedただし、上記のスニペットは、まだ可能であるにもかかわらず、エラーが発生するのvoidでしょうか?

私の意見ではvoid、 と同じでなければならないので、それは独特だと思いますundefined

だから私はそれを解決するこの型チェッカーを作りました:

function isUndefined (payload: any): payload is undefined | void {
  return payload === undefined
}

これで問題は解決しますが、私の質問は次のとおりです。

これでよろしいですか?それとも悪い習慣ですか?

4

2 に答える 2