😸

[TypeScript]void型とは

2022/10/11に公開約1,000字
  • TypeScriptで戻り値がない関数の戻り値を型注釈するにはvoid型を用いる。
  • void型は関数の戻り値を型注釈するためにある特別な型。
function print(message: string): void {
  console.log(message);
}

undefined型とvoid型の違い

  • JavaScriptの関数では、戻り値がない場合は値としてundefinedを返す。
  • TypeScriptにはundefined型もある。
  • TypeScriptの型上の意味としては、undefined型とvoid型は同じ。
  • したがって、戻り値の型注釈にundefinedを用いることもできる。
  • ただし、戻り値型がundefined型の場合は、return undefinedが必要。
function print(message: string): undefined {
  console.log(message);
  return undefined; // これがないとコンパイルエラーになる
}
  • 戻り値がundefinedを含みうる関数の場合は、undefined型を含んだユニオン型を使うのが一般的。
function getIfExists(numbers: number[], search: number): number | undefined {
  if (numbers.includes(search)) {
    return search;
  }
  return undefined;
}
  • void型は関数戻り値の型注釈にだけ使うのが普通なので、変数の型注釈に使うことはまずないが、もしも変数の型注釈にvoid型を使った場合は、異なる挙動になる。
  • undefined型の変数をvoid型の変数に代入することができる一方、void型の変数をundefined型の変数に代入することはできない。
const v: void = undefined;
const u: undefined = v;
// Type 'void' is not assignable to type 'undefined'.

参考

https://typescriptbook.jp/reference/functions/void-type

Discussion

ログインするとコメントできます