Socket
Socket
Sign inDemoInstall

@typescript-eslint/eslint-plugin

Package Overview
Dependencies
115
Maintainers
1
Versions
3416
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @typescript-eslint/eslint-plugin

TypeScript plugin for ESLint


Version published
Weekly downloads
24M
decreased by-11.72%
Maintainers
1
Created
Weekly downloads
 

Package description

What is @typescript-eslint/eslint-plugin?

The @typescript-eslint/eslint-plugin package is an ESLint plugin that contains a set of ESLint rules that are specifically designed for TypeScript code. It helps in identifying and reporting on patterns found in TypeScript code, and it can be used to enforce a wide range of coding standards and conventions.

What are @typescript-eslint/eslint-plugin's main functionalities?

Type-aware linting

This feature allows for rules that require type information. For example, the 'strict-boolean-expressions' rule ensures that boolean expressions are clear and error-free by considering the types involved in the expression.

/* eslint @typescript-eslint/strict-boolean-expressions: 'error' */
function isTruthy(value: any): boolean {
  return Boolean(value);
}

Code style enforcement

Enforces naming conventions for everything from variables to type parameters. This example enforces camelCase naming for variables.

/* eslint @typescript-eslint/naming-convention: ['error', { 'selector': 'variable', 'format': ['camelCase'] }] */
let myVariable = 1;

Accessibility checks

This feature requires functions and methods to explicitly define their return type to improve code readability and maintainability.

/* eslint @typescript-eslint/explicit-function-return-type: 'warn' */
function add(x: number, y: number) {
  return x + y;
}

Other packages similar to @typescript-eslint/eslint-plugin

Readme

Source

ESLint Plugin TypeScript

Azure Pipelines GitHub license NPM Version NPM Downloads Commitizen friendly

Installation

Make sure you have TypeScript and @typescript-eslint/parser installed, then install the plugin:

npm i @typescript-eslint/eslint-plugin --save-dev

It is important that you use the same version number for @typescript-eslint/parser and @typescript-eslint/eslint-plugin.

Note: If you installed ESLint globally (using the -g flag) then you must also install @typescript-eslint/eslint-plugin globally.

Usage

Add @typescript-eslint/parser to the parser field and @typescript-eslint to the plugins section of your .eslintrc configuration file:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"]
}

Then configure the rules you want to use under the rules section.

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "rules": {
    "@typescript-eslint/rule-name": "error"
  }
}

You can also enable all the recommended rules at once. Add plugin:@typescript-eslint/recommended in extends:

{
  "extends": ["plugin:@typescript-eslint/recommended"]
}

Supported Rules

Key: :heavy_check_mark: = recommended, :wrench: = fixable

NameDescription:heavy_check_mark::wrench:
@typescript-eslint/adjacent-overload-signaturesRequire that member overloads be consecutive (adjacent-overload-signatures from TSLint):heavy_check_mark:
@typescript-eslint/array-typeRequires using either T[] or Array<T> for arrays (array-type from TSLint):heavy_check_mark::wrench:
@typescript-eslint/ban-typesEnforces that types will not to be used (ban-types from TSLint):heavy_check_mark::wrench:
@typescript-eslint/camelcaseEnforce camelCase naming convention:heavy_check_mark:
@typescript-eslint/class-name-casingRequire PascalCased class and interface names (class-name from TSLint):heavy_check_mark:
@typescript-eslint/explicit-function-return-typeRequire explicit return types on functions and class methods:heavy_check_mark:
@typescript-eslint/explicit-member-accessibilityRequire explicit accessibility modifiers on class properties and methods (member-access from TSLint):heavy_check_mark:
@typescript-eslint/generic-type-namingEnforces naming of generic type variables
@typescript-eslint/indentEnforce consistent indentation (indent from TSLint):heavy_check_mark::wrench:
@typescript-eslint/interface-name-prefixRequire that interface names be prefixed with I (interface-name from TSLint):heavy_check_mark:
@typescript-eslint/member-delimiter-styleRequire a specific member delimiter style for interfaces and type literals:heavy_check_mark::wrench:
@typescript-eslint/member-namingEnforces naming conventions for class members by visibility.
@typescript-eslint/member-orderingRequire a consistent member declaration order (member-ordering from TSLint)
@typescript-eslint/no-angle-bracket-type-assertionEnforces the use of as Type assertions instead of <Type> assertions (no-angle-bracket-type-assertion from TSLint):heavy_check_mark:
@typescript-eslint/no-array-constructorDisallow generic Array constructors:heavy_check_mark::wrench:
@typescript-eslint/no-empty-interfaceDisallow the declaration of empty interfaces (no-empty-interface from TSLint):heavy_check_mark:
@typescript-eslint/no-explicit-anyDisallow usage of the any type (no-any from TSLint):heavy_check_mark:
@typescript-eslint/no-extraneous-classForbids the use of classes as namespaces (no-unnecessary-class from TSLint)
@typescript-eslint/no-inferrable-typesDisallows explicit type declarations for variables or parameters initialized to a number, string, or boolean. (no-inferrable-types from TSLint):heavy_check_mark::wrench:
@typescript-eslint/no-misused-newEnforce valid definition of new and constructor. (no-misused-new from TSLint):heavy_check_mark:
@typescript-eslint/no-namespaceDisallow the use of custom TypeScript modules and namespaces (no-namespace from TSLint):heavy_check_mark:
@typescript-eslint/no-non-null-assertionDisallows non-null assertions using the ! postfix operator (no-non-null-assertion from TSLint):heavy_check_mark:
@typescript-eslint/no-object-literal-type-assertionForbids an object literal to appear in a type assertion expression (no-object-literal-type-assertion from TSLint):heavy_check_mark:
@typescript-eslint/no-parameter-propertiesDisallow the use of parameter properties in class constructors. (no-parameter-properties from TSLint):heavy_check_mark:
@typescript-eslint/no-this-aliasDisallow aliasing this (no-this-assignment from TSLint)
@typescript-eslint/no-triple-slash-referenceDisallow /// <reference path="" /> comments (no-reference from TSLint):heavy_check_mark:
@typescript-eslint/no-type-aliasDisallow the use of type aliases (interface-over-type-literal from TSLint)
@typescript-eslint/no-unused-varsDisallow unused variables (no-unused-variable from TSLint):heavy_check_mark:
@typescript-eslint/no-use-before-defineDisallow the use of variables before they are defined:heavy_check_mark:
@typescript-eslint/no-var-requiresDisallows the use of require statements except in import statements (no-var-requires from TSLint):heavy_check_mark:
@typescript-eslint/prefer-interfacePrefer an interface declaration over a type literal (type T = { ... }) (interface-over-type-literal from TSLint):heavy_check_mark::wrench:
@typescript-eslint/prefer-namespace-keywordRequire the use of the namespace keyword instead of the module keyword to declare custom TypeScript modules. (no-internal-module from TSLint):heavy_check_mark::wrench:
@typescript-eslint/restrict-plus-operandsWhen adding two variables, operands must both be of type number or of type string. (restrict-plus-operands from TSLint)
@typescript-eslint/type-annotation-spacingRequire consistent spacing around type annotations (typedef-whitespace from TSLint):heavy_check_mark::wrench:

Keywords

FAQs

Last updated on 22 Jan 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc