npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tslint-etc

v1.13.10

Published

More rules for TSLint

Downloads

37,536

Readme

tslint-etc

GitHub License NPM version Downloads Build status dependency status devDependency Status peerDependency Status

TSLint is deprecated. All of the rules in this package have equivalent ESLint rules in the eslint-plugin-etc package or have 'official' ESLint equivalents.

And ESLint implementations this package's dtslint-related rules can be found in the eslint-plugin-dtslint package.

What is it?

tslint-etc is set of TSLint rules to enforce policies that cannot be specified - or easily specified - with the built-in rules.

Install

Install the package using NPM:

npm install tslint-etc --save-dev

Update your tslint.json file to extend this package and add any rules you want to configure to the rules object:

{
  "extends": [
    "tslint-etc"
  ],
  "rules": {
    "throw-error": { "severity": "error" }
  }
}

Rules

WARNING: Before configuring any of the following rules, you should ensure that TSLint's no-unused-variable rule is not enabled in your configuration (or in any configuration that you extend). That rule has caused problems in the past - as it leaves the TypeScript program in an unstable state - and has a significant number of still-open issues. Consider using this package's no-unused-declaration rule instead.

The package includes the following rules (none of which are enabled by default):

| Rule | Description | Fixer | Options | | --- | --- | --- | --- | | ban-imports | Disallows the use of banned imports. | No | See below | | expect-deprecation | Asserts deprecations with $ExpectDeprecation and $ExpectNoDeprecation. | No | None | | expect-type | Asserts types with $ExpectType and presence of errors with $ExpectError. You can use ESLint and this rule to perform your type tests without having to install or run dtslint. | No | None | | no-assign-mutated-array | Disallows the assignment of returned, mutated arrays. Useful for those times you forget that sort and reverse mutate the array upon which they are called. | No | None | | no-const-enum | Disallows the use of const enum. Constant enums are not compatible with isolated modules. | No | See below | | no-dtslint-typo | Disallows dtslint-like expectations that have typographical errors. | No | None | | no-enum | Disallows the use of enum. | No | None | | no-implicit-any-catch | Like the no-implicit-any-catch rule in @typescript-eslint/eslint-plugin, but for Promise rejections, too. | | | no-t | Disallows single-character type parameters. | No | None | | no-unsafe-callback-scope | Disallows the use of variables/properties from unsafe/outer scopes in callbacks. | No | See below | | no-unused-declaration | Disallows unused declarations. | Yes, but see below | See below | | throw-error | Enforces the use of Error values when throwing or rejecting. | No | None |

Options and notes

ban-imports

The ban-imports rule takes an object containing keys that are regular expressions and values that are either booleans or strings containing the explanation for the ban.

For example, to following configuration would disallow "foo" with an explanation, would disallow "bar" without an explanation and would allow "baz":

"rules": {
  "ban-imports": {
    "options": [{
      "^foo$": "'foo' has been deprecated; use 'baz'",
      "^bar$": true,
      "^baz$": false
    }],
    "severity": "error"
  }
}

no-const-enum

This rule takes an optional object with an optional allowLocal property - which defaults to false. If allowLocal is true, only exported const enums are forbidden.

For example, to following configuration would local (i.e. non-exported) const enums:

"rules": {
  "no-const-enum": {
    "options": [{
      "allowLocal": true
    }],
    "severity": "error"
  }
}

no-unsafe-callback-scope

This rule takes an optional object with optional allowMethods, allowParameters and allowProperties properties.

If the allowMethods option is true, calling methods via this is allowed.

If the allowParameters option is true, referencing function parameters from outer scopes is allowed.

If the allowProperties option is true, accessing properties via this is allowed.

The following options are equivalent to the rule's default configuration:

"rules": {
  "no-unsafe-callback-scope": {
    "options": [{
      "allowMethods": true,
      "allowParameters": true,
      "allowProperties": false
    }],
    "severity": "error"
  }
}

no-unused-declaration

This rule has a fixer. However, the fixer will only remove unused import declarations. It will not remove other kinds of declarations, as doing so could be potentially destructive.

For example, having it remove a function that you've spent time writing - just because you've not yet exported or called it - would be too dispiriting, so the rule will just flag it as a failure and leave the function untouched.

The rule takes an optional object with optional imports, declarations and ignored properties. The imports and declarations properties are booleans and determine whether or not unused imports or declarations are allowed. They default to true. The ignored property is an object containing keys that are regular expressions and values that are booleans - indicating whether or not matches are ignored.

For example:

"rules": {
  "no-unused-declaration": {
    "options": [{
      "declarations": true,
      "ignored": {},
      "imports": true
    }],
    "severity": "error"
  }
}