https://github.com/livechat/eslint-plugin
Linting rules for TypeScript ESLint
https://github.com/livechat/eslint-plugin
Last synced: 5 months ago
JSON representation
Linting rules for TypeScript ESLint
- Host: GitHub
- URL: https://github.com/livechat/eslint-plugin
- Owner: livechat
- License: mit
- Created: 2022-08-04T12:49:00.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-12-19T09:39:18.000Z (6 months ago)
- Last Synced: 2025-12-22T03:00:18.073Z (6 months ago)
- Language: TypeScript
- Size: 267 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Liniting rules plugin for TypeScript ESLint by LiveChat
A package of linting rules used in TypeScript ESLint.
## Quick-start
### Installation
```bash
$ npm i --save-dev @livechat/eslint-plugin
```
### Usage example
```json
{
"plugins": ["@livechat"],
"rules": {
"@livechat/no-declare": "error"
}
}
```
## Linting rules list
| Name | Description |
| -------------------------------------------------------------- | --------------------------------------------- |
| [`@livechat/no-declare`](#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
```ts
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
```ts
declare const someConst: any;
declare const window: { location };
declare const x, y, z: number;
```
#### ✅ Correct
```ts
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.
```json
{
"@livechat/no-declare": [ "error", { "onlyIdentifiers": [ "window" ] } ]
}
```
#### ❌ Incorrect
```ts
declare const window: any;
declare const window: { location };
```
#### ✅ Correct
```ts
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.
```json
{
"@livechat/no-declare": [ "error", { "excludeIdentifiers": [ "someConst" ] } ]
}
```
#### ❌ Incorrect
```ts
declare const window: any;
declare const x, y, z: number;
```
#### ✅ Correct
```ts
import { window } from 'utils/global-declarations';
declare const someConst: any;
```