typescript/no-namespace 制限
何をするか
TypeScript のネームスペースを禁止します。
なぜ悪いのか
タイプスクリプトでは、かつて「カスタムモジュール」と呼ばれるコード構造(module Example {})が許可されていました。その後、「ネームスペース」(namespace Example)に名称変更されました。しかし、ネームスペースは古いコード組織の方法であり、現在は ES2015 モジュール構文(import/export)が推奨されています。
例
このルールに対して 不正 なコードの例:
module foo {}
namespace foo {}
declare module foo {}
declare namespace foo {}このルールに対して 正しい コードの例:
declare module "foo" {}
// d.ts ファイル内にあるすべての内容設定
このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。
allowDeclarations
type: boolean
default: false
カスタム TypeScript ネームスペースと declare を許可するかどうか。
{ "allowDeclarations": true } の場合、このルールに対する 不正 なコードの例:
module foo {}
namespace foo {}{ "allowDeclarations": true } の場合、このルールに対する 正しい コードの例:
declare module "foo" {}
declare module foo {}
declare namespace foo {}
declare global {
namespace foo {}
}
declare module foo {
namespace foo {}
}{ "allowDeclarations": false } の場合、このルールに対する 不正 なコードの例:
module foo {}
namespace foo {}
declare module foo {}
declare namespace foo {}{ "allowDeclarations": false } の場合、このルールに対する 正しい コードの例:
declare module "foo" {}allowDefinitionFiles
type: boolean
default: true
{ "allowDefinitionFiles": true } の場合、このルールに対する 不正 なコードの例:
// d.ts ファイル外の場合
module foo {}
namespace foo {}
// d.ts ファイル外の場合
module foo {}
namespace foo {}
declare module foo {}
declare namespace foo {}{ "allowDefinitionFiles": true } の場合、このルールに対する 正しい コードの例:
declare module "foo" {}
// d.ts ファイル内にあるすべての内容使用方法
設定ファイルまたは CLI でこのルールを 有効化 するには、次のように使用できます:
{
"rules": {
"typescript/no-namespace": "error"
}
}oxlint --deny typescript/no-namespace