{"id":13506410,"url":"https://github.com/bradzacher/eslint-plugin-typescript","last_synced_at":"2025-10-02T13:31:15.942Z","repository":{"id":57230277,"uuid":"66300346","full_name":"bradzacher/eslint-plugin-typescript","owner":"bradzacher","description":"TypeScript plugin for ESLint","archived":true,"fork":false,"pushed_at":"2019-01-18T17:28:42.000Z","size":645,"stargazers_count":350,"open_issues_count":1,"forks_count":63,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-09-24T00:02:10.364Z","etag":null,"topics":["eslint","eslint-plugin","typescript"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradzacher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-22T19:05:14.000Z","updated_at":"2024-03-19T10:33:37.000Z","dependencies_parsed_at":"2022-09-13T02:52:22.395Z","dependency_job_id":null,"html_url":"https://github.com/bradzacher/eslint-plugin-typescript","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradzacher%2Feslint-plugin-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradzacher%2Feslint-plugin-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradzacher%2Feslint-plugin-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradzacher%2Feslint-plugin-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradzacher","download_url":"https://codeload.github.com/bradzacher/eslint-plugin-typescript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219875693,"owners_count":16554702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","eslint-plugin","typescript"],"created_at":"2024-08-01T01:00:48.356Z","updated_at":"2025-10-02T13:31:15.586Z","avatar_url":"https://github.com/bradzacher.png","language":"JavaScript","funding_links":[],"categories":["Static Analysis, AKA Linting"],"sub_categories":["Explore in ASTExplorer.net"],"readme":"# THIS REPOSITORY HAS BEEN ARCHIVED. SEE https://github.com/bradzacher/eslint-plugin-typescript/issues/290\n\n\n# eslint-plugin-typescript\n\n[![NPM version](https://img.shields.io/npm/v/eslint-plugin-typescript.svg)](https://www.npmjs.com/package/eslint-plugin-typescript)\n[![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-typescript.svg)](https://www.npmjs.com/package/eslint-plugin-typescript)\n[![TravisCI](https://img.shields.io/travis/bradzacher/eslint-plugin-typescript.svg)](https://travis-ci.com/bradzacher/eslint-plugin-typescript)\n\nTypeScript support for ESLint. (This is still in the very early stages, so please be patient.)\n\n### The below readme is for the upcoming 1.0.0 release. [Please see this tag for the current NPM version (0.14.0)](https://github.com/bradzacher/eslint-plugin-typescript/tree/0.14.0)\n\n## Installation\n\nYou'll first need to install [ESLint](http://eslint.org):\n\n```shellsession\n$ npm i eslint --save-dev\n```\n\nNext, install `typescript` if you haven’t already:\n\n```shellsession\n$ npm i typescript@~3.1.1 --save-dev\n```\n\nLast, install `eslint-plugin-typescript`:\n\n```shellsession\n$ npm install eslint-plugin-typescript --save-dev\n```\n\n**Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-typescript` globally.\n\n## Usage\n\nAdd `eslint-plugin-typescript/parser` to the `parser` field and `typescript` to the plugins section of your `.eslintrc` configuration file:\n\n```json\n{\n    \"parser\": \"eslint-plugin-typescript/parser\",\n    \"plugins\": [\"typescript\"]\n}\n```\n\nNote: The plugin provides its own version of the `typescript-eslint-parser` via `eslint-plugin-typescript/parser`.\nThis helps us guarantee 100% compatibility between the plugin and the parser.\n\nThen configure the rules you want to use under the rules section.\n\n```json\n{\n    \"parser\": \"eslint-plugin-typescript/parser\",\n    \"plugins\": [\"typescript\"],\n    \"rules\": {\n        \"typescript/rule-name\": \"error\"\n    }\n}\n```\n\nYou can also enable all the recommended rules at once. Add `plugin:typescript/recommended` in extends:\n\n```json\n{\n    \"extends\": [\"plugin:typescript/recommended\"]\n}\n```\n\n## Supported Rules\n\n\u003c!-- Please run `npm run docs` to update this section --\u003e\n\u003c!-- begin rule list --\u003e\n\n**Key**: :heavy_check_mark: = recommended, :wrench: = fixable\n\n\u003c!-- prettier-ignore --\u003e\n| Name | Description | :heavy_check_mark: | :wrench: |\n| ---- | ----------- | ------------------ | -------- |\n| [`typescript/adjacent-overload-signatures`](./docs/rules/adjacent-overload-signatures.md) | Require that member overloads be consecutive (`adjacent-overload-signatures` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/array-type`](./docs/rules/array-type.md) | Requires using either `T[]` or `Array\u003cT\u003e` for arrays (`array-type` from TSLint) | :heavy_check_mark: | :wrench: |\n| [`typescript/ban-types`](./docs/rules/ban-types.md) | Enforces that types will not to be used (`ban-types` from TSLint) | :heavy_check_mark: | :wrench: |\n| [`typescript/camelcase`](./docs/rules/camelcase.md) | Enforce camelCase naming convention | :heavy_check_mark: |  |\n| [`typescript/class-name-casing`](./docs/rules/class-name-casing.md) | Require PascalCased class and interface names (`class-name` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/explicit-function-return-type`](./docs/rules/explicit-function-return-type.md) | Require explicit return types on functions and class methods | :heavy_check_mark: |  |\n| [`typescript/explicit-member-accessibility`](./docs/rules/explicit-member-accessibility.md) | Require explicit accessibility modifiers on class properties and methods (`member-access` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/generic-type-naming`](./docs/rules/generic-type-naming.md) | Enforces naming of generic type variables |  |  |\n| [`typescript/indent`](./docs/rules/indent.md) | Enforce consistent indentation (`indent` from TSLint) | :heavy_check_mark: | :wrench: |\n| [`typescript/interface-name-prefix`](./docs/rules/interface-name-prefix.md) | Require that interface names be prefixed with `I` (`interface-name` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/member-delimiter-style`](./docs/rules/member-delimiter-style.md) | Require a specific member delimiter style for interfaces and type literals | :heavy_check_mark: | :wrench: |\n| [`typescript/member-naming`](./docs/rules/member-naming.md) | Enforces naming conventions for class members by visibility. |  |  |\n| [`typescript/member-ordering`](./docs/rules/member-ordering.md) | Require a consistent member declaration order (`member-ordering` from TSLint) |  |  |\n| [`typescript/no-angle-bracket-type-assertion`](./docs/rules/no-angle-bracket-type-assertion.md) | Enforces the use of `as Type` assertions instead of `\u003cType\u003e` assertions (`no-angle-bracket-type-assertion` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-array-constructor`](./docs/rules/no-array-constructor.md) | Disallow generic `Array` constructors | :heavy_check_mark: | :wrench: |\n| [`typescript/no-empty-interface`](./docs/rules/no-empty-interface.md) | Disallow the declaration of empty interfaces (`no-empty-interface` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-explicit-any`](./docs/rules/no-explicit-any.md) | Disallow usage of the `any` type (`no-any` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-extraneous-class`](./docs/rules/no-extraneous-class.md) | Forbids the use of classes as namespaces (`no-unnecessary-class` from TSLint) |  |  |\n| [`typescript/no-inferrable-types`](./docs/rules/no-inferrable-types.md) | Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean. (`no-inferrable-types` from TSLint) | :heavy_check_mark: | :wrench: |\n| [`typescript/no-misused-new`](./docs/rules/no-misused-new.md) | Enforce valid definition of `new` and `constructor`. (`no-misused-new` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-namespace`](./docs/rules/no-namespace.md) | Disallow the use of custom TypeScript modules and namespaces (`no-namespace` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-non-null-assertion`](./docs/rules/no-non-null-assertion.md) | Disallows non-null assertions using the `!` postfix operator (`no-non-null-assertion` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-object-literal-type-assertion`](./docs/rules/no-object-literal-type-assertion.md) | Forbids an object literal to appear in a type assertion expression (`no-object-literal-type-assertion` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-parameter-properties`](./docs/rules/no-parameter-properties.md) | Disallow the use of parameter properties in class constructors. (`no-parameter-properties` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-this-alias`](./docs/rules/no-this-alias.md) | Disallow aliasing `this` (`no-this-assignment` from TSLint) |  |  |\n| [`typescript/no-triple-slash-reference`](./docs/rules/no-triple-slash-reference.md) | Disallow `/// \u003creference path=\"\" /\u003e` comments (`no-reference` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-type-alias`](./docs/rules/no-type-alias.md) | Disallow the use of type aliases (`interface-over-type-literal` from TSLint) |  |  |\n| [`typescript/no-unused-vars`](./docs/rules/no-unused-vars.md) | Disallow unused variables (`no-unused-variable` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/no-use-before-define`](./docs/rules/no-use-before-define.md) | Disallow the use of variables before they are defined | :heavy_check_mark: |  |\n| [`typescript/no-var-requires`](./docs/rules/no-var-requires.md) | Disallows the use of require statements except in import statements (`no-var-requires` from TSLint) | :heavy_check_mark: |  |\n| [`typescript/prefer-interface`](./docs/rules/prefer-interface.md) | Prefer an interface declaration over a type literal (type T = { ... }) (`interface-over-type-literal` from TSLint) | :heavy_check_mark: | :wrench: |\n| [`typescript/prefer-namespace-keyword`](./docs/rules/prefer-namespace-keyword.md) | Require 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: |\n| [`typescript/type-annotation-spacing`](./docs/rules/type-annotation-spacing.md) | Require consistent spacing around type annotations (`typedef-whitespace` from TSLint) | :heavy_check_mark: | :wrench: |\n\n\u003c!-- end rule list --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradzacher%2Feslint-plugin-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradzacher%2Feslint-plugin-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradzacher%2Feslint-plugin-typescript/lists"}