tslint-microsoft-contrib
A set of TSLint rules used on some Microsoft projects.
Version 0.0.1
This software is not yet released with a 1.0 version.
All release blockers are listed in the issues page.
Installation
npm install tslint-microsoft-contrib
Configuration
Configure your Grunt build task
Add the new rulesDirectory to your tslint task:
grunt.initConfig({
tslint: {
options: {
rulesDirectory: 'node_modules/tslint-microsoft-contrib',
configuration: grunt.file.readJSON("tslint-contrib.json")
},
files: {
src: ['src/file1.ts', 'src/file2.ts']
}
}
})
The tslint-contrib.json file follows the same conventions as other tslint rules.
Supported Rules
A sample configuration file with all options is available under tslint-microsoft-contrig/tslint.json
missing-optional-annotation
A parameter that follows one or more parameters marked as optional is not itself marked optionalno-banned-terms
Do not use banned terms: caller, callee, eval, arguments. These terms refer to functions or properties that should not be used, so it is best practice to simply avoid them.no-cookies
Do not use cookiesno-delete-expression
Do not delete expressions. Only properties should be deletedno-disable-auto-sanitization
Do not disable auto-sanitization of HTML because this opens up your page to an XSS attack. Specifically, do not use the execUnsafeLocalFunction or setInnerHTMLUnsafe functions.no-document-write
Do not use document.writeno-duplicate-parameter-names
Do not write functions or methods with duplicate parameter namesno-exec-script
Do not use the execScript functionsno-function-constructor-with-string-args
Do not use the version of the Function constructor that accepts a string argument to define the body of the functionno-increment-decrement
Avoid use of increment and decrement operators particularly as part of complicated expressionsno-multiline-string
Do not declare multiline stringsno-unnecessary-semicolons
Remove unnecessary semicolonsno-octal-literal
Do not use octal literals or escaped octal sequencesno-reserved-keywords
Do not use reserved keywords as names of local variables, fields, functions, or other identifiers.no-string-based-set-immediate
Do not use the version of setImmediate that accepts code as a string argument. However, it is acceptable to use the version of setImmediate where a direct reference to a function is provided as the callback argumentno-string-based-set-interval
Do not use the version of setInterval that accepts code as a string argument. However, it is acceptable to use the version of setInterval where a direct reference to a function is provided as the callback argumentno-string-based-set-timeout
Do not use the version of setTimeout that accepts code as a string argument. However, it is acceptable to use the version of setTimeout where a direct reference to a function is provided as the callback argumentno-unused-imports
Remove unused importsno-with-statement
Do not use with statements. Assign the item to a new variable instead
Development
To develop tslint-microsoft-contrib simply clone the repository, install dependencies and run grunt:
git config --global core.autocrlf input
git config --global core.eol lf
git clone git@github.com:Microsoft/tslint-microsoft-contrib.git
cd tslint-microsoft-contrib
npm install
grunt all
Creating a new Release
- Bump up the version number in package.json
- Run
grunt all
to build the latest sources - Commit
- Create a git tag for the new release and push it