Skip to content

Linting rules for TypeScript ESLint

License

Notifications You must be signed in to change notification settings

livechat/eslint-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Liniting rules plugin for TypeScript ESLint by LiveChat

A package of linting rules used in TypeScript ESLint.

Quick-start

Installation

$ npm i --save-dev @livechat/eslint-plugin

Usage example

{
  "plugins": ["@livechat"],
  "rules": {
    "@livechat/no-declare": "error"
  }
}

Linting rules list

Name Description
@livechat/no-declare Forbids using 'declare' keyword

no-declare

Using 'declare' keyword may be forbidden for all or selected identifiers. You can use it for example to force another methods of declaring global variables, e.g. using 'import' forms.

Options

type Options = {
  onlyIdentifiers?: string[];
  excludeIdentifiers?: string[];
};

const defaultOptions: Options = {
  onlyIdentifiers: [];
  excludeIdentifiers: [];
};

The rule accepts options with the following properties:

  • onlyIdentifiers (optional) - If used, only the provided identifiers will be reported. All other identifiers declared with declare keyword will be ignored.
  • excludeIdentifiers (optional) - If used, all identifiers will be reported except those provided in the array. If onlyIdentifiers is used, this option is ignored.

default options

Don't use 'declare' keyword.

❌ Incorrect

declare const someConst: any;
declare const window: { location };
declare const x, y, z: number;

✅ Correct

import someConst from 'some-lib';
import { window } from 'utils/global-declarations';
const { x, y, z } = window;

onlyIdentifiers

Don't use 'declare' keyword for the provided identifiers.

{
  "@livechat/no-declare": [ "error", { "onlyIdentifiers": [ "window" ] } ]
}

❌ Incorrect

declare const window: any;
declare const window: { location };

✅ Correct

import { window } from 'utils/global-declarations';
declare const someConst: any;
declare const x, y, z: number;

excludeIdentifiers

Don't use 'declare' keyword except for the provided identifiers. If onlyIdentifiers is used, this option is ignored.

{
  "@livechat/no-declare": [ "error", { "excludeIdentifiers": [ "someConst" ] } ]
}

❌ Incorrect

declare const window: any;
declare const x, y, z: number;

✅ Correct

import { window } from 'utils/global-declarations';
declare const someConst: any;