跳到主要內容

prefer-destructuring

要求從陣列和/或物件解構。

🔧

這個規則報告的一些問題可以透過 --fix ESLint 命令列選項.

自動修正

💭 這項規則需要 類型資訊

才能執行。

範例

const x: string = obj.x; // This is incorrect and the auto fixer provides following untyped fix.
// const { x } = obj;
`@typescript-eslint/prefer-destructuring`

在 Playground 中開啟

const x = ['a'];
const y = x[0];
`@typescript-eslint/prefer-destructuring`

如何使用

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"prefer-destructuring": "off",
"@typescript-eslint/prefer-destructuring": "error"
}
};

在沙盒中體驗此規則↗

選項

參閱eslint/prefer-destructuring 選項

此規則新增了下列選項

type Options = [
BasePreferDestructuringOptions[0],
BasePreferDestructuringOptions[1] & {
enforceForDeclarationWithTypeAnnotation?: boolean;
},
];

const defaultOptions: Options = [
basePreferDestructuringDefaultOptions[0],
{
...basePreferDestructuringDefaultOptions[1],
enforceForDeclarationWithTypeAnnotation: false,
},
];

enforceForDeclarationWithTypeAnnotation

此選項設為 true 時,強制由類型註解的變數宣告,改用解構賦值。

{ enforceForDeclarationWithTypeAnnotation: true }範例

不適用的情境

類型檢查的 linter 規則較傳統 linter 規則強大,但也需要設定類型檢查 linting。啟用類型檢查規則後,如果效能降低,請參閱效能疑難排解

資源

引自 ESLint 核心,並保留 ❤️。