Skip to content
← Back to rules

typescript/no-invalid-void-type 制限

何をしますか

戻り値の型や設定されたジェネリックコンテキスト以外で void 型を使用することを禁止します。

なぜ問題ですか?

TypeScript において、void は主に戻り値の位置で意味を持ちます。他の型の場所(パラメータ、プロパティ、エイリアス、およびほとんどのユニオン)で void を使用することは、通常混乱を招き、誤った型設計を示していることが多いです。

このルールに対して誤りなコードの例:

ts
function takeVoid(arg: void) {}
type Alias = void;
type Union = string | void;

このルールに対して正しいコードの例:

ts
function f(): void {}
type P = Promise<void>;
type U = void | never;

設定

このルールは次のプロパティを持つ設定オブジェクトを受け入れます:

allowAsThisParameter

type: boolean

default: false

関数の this パラメータが void であっても許可するかどうか。

allowInGenericTypeArguments

type: array | boolean

allowInGenericTypeArguments[n]

type: string

使い方

このルールを設定ファイルまたは CLI で有効化するには、次のように使用できます:

json
{
  "rules": {
    "typescript/no-invalid-void-type": "error"
  }
}
bash
oxlint --deny typescript/no-invalid-void-type

参照