Skip to content

Latest commit

 

History

History
97 lines (69 loc) · 2.39 KB

File metadata and controls

97 lines (69 loc) · 2.39 KB

dot-notation

enforce dot notation whenever possible.

Rule Details

This rule extends the base eslint/dot-notation rule. It adds:

  • Support for optionally ignoring computed private and/or protected member access.
  • Compatibility with TypeScript's noPropertyAccessFromIndexSignature option.

How to Use

{
  // note you must disable the base rule as it can report incorrect errors
  "dot-notation": "off",
  "@typescript-eslint/dot-notation": ["error"]
}

Options

See eslint/dot-notation options. This rule adds the following options:

interface Options extends BaseDotNotationOptions {
  allowPrivateClassPropertyAccess?: boolean;
  allowProtectedClassPropertyAccess?: boolean;
  allowIndexSignaturePropertyAccess?: boolean;
}
const defaultOptions: Options = {
  ...baseDotNotationDefaultOptions,
  allowPrivateClassPropertyAccess: false,
  allowProtectedClassPropertyAccess: false,
  allowIndexSignaturePropertyAccess: false,
};

If the TypeScript compiler option noPropertyAccessFromIndexSignature is set to true, then this rule always allows the use of square bracket notation to access properties of types that have a string index signature, even if allowIndexSignaturePropertyAccess is false.

allowPrivateClassPropertyAccess

Example of a correct code when allowPrivateClassPropertyAccess is set to true

class X {
  private priv_prop = 123;
}

const x = new X();
x['priv_prop'] = 123;

allowProtectedClassPropertyAccess

Example of a correct code when allowProtectedClassPropertyAccess is set to true

class X {
  protected protected_prop = 123;
}

const x = new X();
x['protected_prop'] = 123;

allowIndexSignaturePropertyAccess

Example of correct code when allowIndexSignaturePropertyAccess is set to true

class X {
  [key: string]: number;
}

const x = new X();
x['hello'] = 123;

If the TypeScript compiler option noPropertyAccessFromIndexSignature is set to true, then the above code is always allowed, even if allowIndexSignaturePropertyAccess is false.

Taken with ❤️ from ESLint core

Attributes

  • Configs:
    • ✅ Recommended
    • 🔒 Strict
  • 🔧 Fixable
  • 💭 Requires type information