跳至主要內容

不包含不必要的類型引數

禁止類型引數等於預設值。

🔧

此規則報告的部分問題都可以透過 --fix ESLint 命令列選項自動修正.

💭

此規則需要 類型資訊 才能執行。

TypeScript 中的類型參數可以指定預設值。例如:

function f<T = number>(/* ... */) {
// ...
}

提供等於預設值的明確類型參數是多餘的:例如呼叫 f<number>(...)。此規則會在明確指定的類型引數是類型參數的預設值時回報。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-type-arguments": "error"
}
};

於試用區中嘗試此規則 ↗

範例

function f<T = number>() {}
f<number>();
在試用區中開啟
function g<T = number, U = string>() {}
g<string, string>();
在試用區中開啟
class C<T = number> {}
new C<number>();

class D extends C<number> {}
在試用區中開啟
interface I<T = number> {}
class Impl implements I<number> {}
在試用區中開啟

選項

此規則無提供設定選項。

不應使用時機

如果您偏好明確指定類型參數,即使它們等於預設值時,您可以跳過此規則。


類型檢查的規則比傳統的規則強大,但它需要設定類型檢查的規則。如果您在啟用類型檢查的規則後遇到效能下降,請參考效能疑難排解

資源