0.10.0 • Published 2 months ago

@susisu/eslint-plugin-safe-typescript v0.10.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@susisu/eslint-plugin-safe-typescript

CI

An ESLint plugin that makes your TypeScript code safer

Installation

This plugin requires TypeScript and typescript-eslint. If you haven't installed them in your project, follow the guide on typescript-eslint's Getting Started page.

Once you're ready, install this plugin:

# npm
npm i --save-dev @susisu/eslint-plugin-safe-typescript
# yarn
yarn add -D @susisu/eslint-plugin-safe-typescript
# pnpm
pnpm add -D @susisu/eslint-plugin-safe-typescript

Configuration

  1. Enable typescript-eslint parser
  2. Add @susisu/eslint-plugin-safe-typescript to plugins
  3. (Optional) Add parserOptions.project if you enable rules that use type information.

eslint.config.js:

import tsEslint from "typescript-eslint";
import safeTsPlugin from "@susisu/eslint-plugin-safe-typescript";

export default [
  {
    languageOptions: {
      parser: tsEslint.parser, // (1)
      parserOptions: {
        project: true, // (3)
      },
    },
    plugins: {
      "@susisu/safe-typescript": safeTsPlugin, // (2)
    },
    rules: {
      "@susisu/safe-typescript/no-object-assign": "error",
    },
  },
];

.eslintrc:

{
  "parser": "@typescript-eslint/parser", // (1)
  "parserOptions": {
    "project": true // (3)
  },
  "plugins": ["@susisu/safe-typescript"], // (2)
  "rules": {
    "@susisu/safe-typescript/no-object-assign": "error"
  }
}

Recommended configuration

This plugin also provides a configuration set for the recommended rules (see Rules for which rules are recommended).

Since some rules in the recommended configuration require type information, parserOptions.project must be set in your config.

eslint.config.js

export default [
  safeTsPlugin.configs.recommended,
  // or extend in `rules`
  // {
  //   rules: {
  //     ...safeTsPlugin.configs.recommended.rules,
  //   },
  // },
];

eslintrc

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

Rules

āœ… = recommended, šŸ”§ = fixable, šŸ’” = has suggestions, šŸ’­ = requires type information

NameDescriptionāœ…šŸ”§šŸ’­
no-object-assign-mutationDisallow mutations using Object.assign().āœ…
no-type-assertionDisallow type assertions like x as T.āœ…
no-unsafe-object-enum-methodDisallow possibly unsafe property enumeration methods of Object.āœ…šŸ’­
no-unsafe-object-property-checkDisallow possibly unsafe property checks of object.āœ…šŸ’­
no-unsafe-object-property-overwriteDisallow possibly unsafe overwrites of object properties.āœ…šŸ’”šŸ’­

Contributing

Issues and PRs are welcome! Feel free to open issues if you have any problems or ideas.

License

MIT License

Author

Susisu (GitHub, Twitter)

0.9.4

3 months ago

0.10.0

2 months ago

0.9.3

6 months ago

0.9.2

8 months ago

0.9.1

9 months ago

0.9.0

12 months ago

0.8.1

1 year ago

0.8.3

1 year ago

0.8.2

1 year ago

0.8.0

1 year ago

0.7.0

1 year ago

0.6.1

1 year ago

0.6.0

1 year ago

0.5.3

1 year ago

0.5.2

2 years ago

0.5.0

2 years ago

0.5.1

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.5

2 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.0

3 years ago

0.3.1

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago