void 型

何も当てはまらない・無いを表現する型です。

void 型を関数の戻り値で使う

関数の戻り値に使うときは、returnも使わないような本当に何も返さない時に使います。基本省略することがほとんどかなと思います。

const fn: (text: string) => void = text => {
  console.log(text);
}

void 型を関数の引数に使う

引数に使うとその引数は無いものとすることができます。 Pertial (?)を付けなくても渡さなくていい引数扱いになります。

const fn = (arg: void) => {/* ... */};
fn(); // ok

const fn2 = (arg: undefined) => {/* ... */};
fn2(); // Expected 1 arguments, but got 0.
fn2(undefined);

関数の引数に使うのはどういう時か

恐らくこれは自分でそういう関数型をわざわざ定義することは99%無いです。
これが便利なのは恐らく、自作の Generic なタイプから引数型に変換するような時に Pertial 化(?)を付けなくてもしなくても引数の数を(型チェック的には)制御できることだと思います。

interface Arguments {
  foo: string;
  bar: void;
}

const foo = (val: Arguments['foo']) => /* ... */;
const bar = (val: Arguments['bar']) => /* ... */;

foo('foo'); // ok
foo(); // Expected 1 arguments, but got 0.

bar(); // ok
bar('bar'); // Argument of type '"bar"' is not assignable
            // to parameter of type 'void'.