メインコンテンツにスキップ

no-unsafe-call

型 `any` の値を呼び出すことを許可しません。

拡張 "plugin:@typescript-eslint/"recommended-type-checked" ESLint 設定 で有効にすると、このルールが有効になります。

💭

このルールを実行するには 型情報 が必要です。

TypeScript の `any` 型は、型システムからの危険な「エスケープハッチ」です。 `any` を使用すると、多くの型チェックルールが無効になるため、一般的には最後の手段として、またはコードのプロトタイピング時にのみ使用するのが最善です。

最善を尽くしても、`any` 型がコードベースに紛れ込むことがあります。 `any` 型の値を関数として呼び出すと、潜在的な型安全性の問題が発生し、コードベースにバグが発生する可能性があります。

このルールは、`any` として型付けされた値の呼び出しを禁止します。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unsafe-call": "error"
}
};

プレイグラウンドでこのルールを試す ↗

declare const anyVar: any;
declare const nestedAny: { prop: any };

anyVar();
anyVar.a.b();

nestedAny.prop();
nestedAny.prop['a']();

new anyVar();
new nestedAny.prop();

anyVar`foo`;
nestedAny.prop`foo`;
プレイグラウンドで開く

オプション

このルールは設定できません。

使用しない場合

コードベースに既存の `any` が多数ある場合、または安全でないコードの領域がある場合、このルールを有効にするのは難しい場合があります。 プロジェクトの安全でない領域の型安全性を高めるまでは、`no-unsafe-*` ルールをスキップする方が簡単な場合があります。 このルールを完全に無効にする代わりに、ESLint 無効化コメントを使用することを検討してください。


型チェックされた lint ルールは、従来の lint ルールよりも強力ですが、型チェックされた linting を設定する必要があります。 型チェックされたルールを有効にした後にパフォーマンスが低下した場合は、パフォーマンストラブルシューティングを参照してください。

リソース