跳至主要內容

prefer-function-type

強制使用具有呼叫簽章的函式類型,而非介面。

🎨

延伸 "plugin:@typescript-eslint/風格" ESLint 設定檔中 將啟用此規則。

🔧

此規則回報的某些問題可透過 --fix ESLint 命令列選項.

自動修正

  • TypeScript 允許使用兩種常見的方式來宣告函式的型別
  • 函式類型:() => string

具有簽章的物件類型:{ (): string }

函式類型形式通常首選,因為它較為簡潔。

此規則建議使用函式類型,而非具有單一呼叫簽章的介面或物件類型文字。
module.exports = {
"rules": {
"@typescript-eslint/prefer-function-type": "error"
}
};

.eslintrc.cjs

在遊戲場中嘗試此規則 ↗

interface Example {
(): string;
}
✅ 正確
function foo(example: { (): number }): number {
return example();
}
✅ 正確
interface ReturnsSelf {
// returns the function itself, not the `this` argument.
(arg: string): this;
}
✅ 正確

在遊戲場中開啟

此規則無法調整。

何時不應使用

若您特別想基於風格因素使用單一呼叫簽章的介面或類型文字,您可以略過此規則。

此規則在觸發像是 `interface Function` 等的全球擴充時,有名為邊界案例的已知問題。這些邊界案例很少見,且通常與奇怪的程式碼有關。我們建議您使用 內嵌的 ESLint 停用註解。請參閱 #454 以取得詳情。

資源