本文へ移動

no-use-before-define

定義前に変数を使用することを禁止します。

このルールは、基本のeslint/no-use-before-defineルールを拡張します。typeinterfaceenum宣言のサポートを追加します。

使用方法

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

このルールをPlaygroundでお試しください ↗

オプション

eslint/no-use-before-defineのオプションを参照してください。

このルールは以下のオプションを追加します。

interface Options extends BaseNoUseBeforeDefineOptions {
enums?: boolean;
typedefs?: boolean;
ignoreTypeReferences?: boolean;
}

const defaultOptions: Options = {
...baseNoUseBeforeDefineDefaultOptions,
enums: true,
typedefs: true,
ignoreTypeReferences: true,
};

enums

これがtrueの場合、このルールはenum宣言の前にenumへの参照ごとに警告を出します。これがfalseの場合、このルールは、参照が子スコープ内にある場合、enumへの参照を無視します。

{ "enums": true }オプションのコード例

const x = Foo.FOO;

enum Foo {
FOO,
}
Playgroundで開く

typedefs

これがtrueの場合、このルールは型宣言の前に型への参照ごとに警告を出します。これがfalseの場合、このルールは型への参照を無視します。

{ "typedefs": false }オプションの**正しい**コード例

let myVar: StringOrNumber;
type StringOrNumber = string | number;
Playgroundで開く

ignoreTypeReferences

これがtrueの場合、このルールは型注釈やアサーションなど、すべての型参照を無視します。これがfalseの場合、すべての型参照をチェックします。

{ "ignoreTypeReferences": true }オプションの**正しい**コード例

let var1: StringOrNumber;
type StringOrNumber = string | number;

let var2: Enum;
enum Enum {}
Playgroundで開く

リソース

ESLintコアから❤️を込めて提供されています。