A linter for the TypeScript language.
ban
bans the use of specific functions. Options are ["object", "function"] pairs that ban the use of object.function()class-name
enforces PascalCased class and interface names.comment-format
enforces rules for single-line comments. Rule options:"check-space"
enforces the rule that all single-line comments must begin with a space, as in// comment
- note that comments starting with
///
are also allowed, for things such as ///
- note that comments starting with
"check-lowercase"
enforces the rule that the first non-whitespace character of a comment must be lowercase, if applicable
curly
enforces braces forif
/for
/do
/while
statements.eofline
enforces the file to end with a newline.forin
enforces afor ... in
statement to be filtered with anif
statement.*indent
enforces consistent indentation levels (currently disabled).interface-name
enforces the rule that interface names must begin with a capital 'I'jsdoc-format
enforces basic format rules for jsdoc comments -- comments starting with/**
- each line contains an asterisk and asterisks must be aligned
- each asterisk must be followed by either a space or a newline (except for the first and the last)
- the only characters before the asterisk on each line must be whitepace characters
label-position
enforces labels only on sensible statements.label-undefined
checks that labels are defined before usage.max-line-length
sets the maximum length of a line.no-arg
disallows access toarguments.callee
.no-bitwise
disallows bitwise operators.no-console
disallows access to the specified functions onconsole
. Rule options are functions to ban on the console variable.no-consecutive-blank-lines
disallows having more than one blank line in a row in a fileno-construct
disallows access to the constructors ofString
,Number
, andBoolean
.no-debugger
disallowsdebugger
statements.no-duplicate-key
disallows duplicate keys in object literals.no-duplicate-variable
disallows duplicate variable declarations.no-empty
disallows empty blocks.no-eval
disallowseval
function invocations.no-string-literal
disallows object access via string literals.no-trailing-whitespace
disallows trailing whitespace at the end of a line.no-unreachable
disallows unreachable code afterbreak
,catch
,throw
, andreturn
statements.one-line
enforces the specified tokens to be on the same line as the expression preceding it. Rule options:"check-catch"
checks thatcatch
is on the same line as the closing brace fortry
"check-else"
checks thatelse
is on the same line as the closing brace forif
"check-open-brace"
checks that an open brace falls on the same line as its preceding expression."check-whitespace"
checks preceding whitespace for the specified tokens.
quotemark
enforces consistent single or double quoted string literals.radix
enforces the radix parameter ofparseInt
semicolon
enforces semicolons at the end of every statement.triple-equals
enforces === and !== in favor of == and !=.typedef
enforces type definitions to exist. Rule options:"callSignature"
checks return type of functions"catchClause"
checks type in exception catch blocks"indexSignature"
checks index type specifier of indexers"parameter"
checks type specifier of parameters"propertySignature"
checks return types of interface properties"variableDeclarator"
checks variable declarations
typedef-whitespace
enforces spacing whitespace for type definitions. Each rule option requires a value of"space"
or"nospace"
to require a space or no space before the type specifier's colon. Rule options:"callSignature"
checks return type of functions"catchClause"
checks type in exception catch blocks"indexSignature"
checks index type specifier of indexers
use-strict
enforces ECMAScript 5's strict modecheck-module
checks that all top-level modules are using strict modecheck-function
checks that all top-level functions are using strict mode
variable-name
allows only camelCased or UPPER_CASED variable names. Rule options:"allow-leading-underscore"
allows underscores at the beginnning.
whitespace
enforces spacing whitespace. Rule options:"check-branch"
checks branching statements (if
/else
/for
/while
) are followed by whitespace"check-decl"
checks that variable declarations have whitespace around the equals token"check-operator"
checks for whitespace around operator tokens"check-separator"
checks for whitespace after separator tokens (,
/;
)"check-type"
checks for whitespace before a variable type specification
sudo npm install tslint -g
npm install tslint
Please first ensure that the TypeScript source files compile correctly.
usage: tslint
Options:
-c, --config configuration file
-f, --file file to lint [required]
-o, --out output file
-r, --rules-dir rules directory
-s, --formatters-dir formatters directory
-t, --format output format (prose, json) [default: "prose"]
By default, configuration is loaded from .tslintrc
or tslint.json
, if either exists in the current path.
var options = {
formatter: "json",
configuration: configuration,
rulesDirectory: "customRules/",
formattersDirectory: "customFormatters/"
};
var Linter = require("tslint");
var ll = new Linter(fileName, contents, options);
var result = ll.lint();
git clone git@github.com:palantir/tslint.git
cd tslint
git submodule init
git submodule update
npm install
grunt
- Add more rules from jshint
- Disallow variables referenced outside of their scope definition
- Disallow unused variables
- Support pluggable formatters