Skip to content
← Back to rules

typescript/prefer-namespace-keyword 正しさ

This rule is turned on by default.
🛠️ An auto-fix is available for this rule.

何をするか

このルールは、module キーワードが namespace ではなく使用されている場合に報告します。 このルールは、外部の API を記述するために TypeScript の module 宣言を使用している場合(declare module 'foo' {})には報告しません。

WARNING

このルールは非推奨であり、将来のリリースで削除される予定です。

将来的な TypeScript および Oxlint バージョンでは、パーサーによって硬いエラーとして発生するようになります。

参照: https://github.com/microsoft/TypeScript/issues/54500, https://github.com/microsoft/TypeScript/issues/62211 および https://github.com/microsoft/TypeScript/pull/62876。

なぜ問題なのか

名前空間(namespaces)は、タイプスクリプトコードを組織化するための古くなった手法です。現在は、ES2015 のモジュール構文(import/export)が推奨されています。 まだカスタムモジュール/名前空間を使用しているプロジェクトの場合、それらを「名前空間」と呼ぶことが望ましいです。

このルールに対する不適切なコードの例:

typescript
module Example {}

このルールに対する適切なコードの例:

typescript
namespace Example {}

使用方法

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

json
{
  "rules": {
    "typescript/prefer-namespace-keyword": "error"
  }
}
bash
oxlint --deny typescript/prefer-namespace-keyword

参照