Package Exports
- tslint-etc
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tslint-etc) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tslint-etc
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 |
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-missing-dollar-expect |
Disallows dtslint $ExpectType and $ExpectError expectations if the $ is missing. | No | None |
no-unsafe-callback-scope |
Disallows the use of variables/properties from unsafe/outer scopes in callbacks. | No | None |
no-unused-declaration |
Disallows unused declarations. | Yes, but see below | None |
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-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.