{ "extends": "tslint:latest", "defaultSeverity": "error", "rules": { "array-type": [true, "array"], "arrow-parens": [true, "ban-single-arg-parens"], "curly": [true, "ignore-same-line"], "indent": [true, "tabs", 2], "quotemark": false, "member-access": [true, "no-public"], "no-empty": [true, "allow-empty-catch", "allow-empty-functions"], "no-string-literal": false, "no-unnecessary-initializer": false, "interface-over-type-literal": true, "arrow-return-shorthand": true, "no-angle-bracket-type-assertion": true, "no-redundant-jsdoc": true, "no-unsafe-finally": true, "object-literal-shorthand": true, "prefer-for-of": true, "static-this": true, "triple-equals": true, "unnecessary-bind": true, "prefer-const": { "severity": "warning", "options": { "destructuring": "all" } }, "max-line-length": { "severity": "warning", "options": { "limit": 120, "ignore-pattern": "^\\s*(// \\s*)?((let |const )?[a-zA-Z0-9$.]+ \\+?= (\\$\\()?|(return |throw )?(new )?([a-zA-Z0-9$.]+\\()?|Chat.html)?['\"`/]" } }, "no-floating-promises": true, "interface-name": false, "no-for-in-array": true, "forin": false, // maybe one day "member-ordering": false, "max-classes-per-file": false, // they look weird in `new class {...}` "new-parens": false, "no-bitwise": false, "no-console": false, "prefer-conditional-expression": false, "prefer-object-spread": false, "no-shadowed-variable": [true, {"temporalDeadZone": false}], // I don't understand why people care about this considering how aggressively they drop support for old IE versions "radix": false, "object-literal-sort-keys": false, "object-literal-key-quotes": [true, "as-needed"], "trailing-comma": [ true, { "multiline": { "objects": "always", "arrays": "always", "functions": "never", "typeLiterals": "always" }, "singleline": "never", "esSpecCompliant": true } ], "semicolon": [true, "always", "strict-bound-class-methods"], "space-before-function-paren": [true, {"anonymous": "always", "named": "never", "asyncArrow": "always"}] }, "jsEnable": false, "rulesDirectory": [], "linterOptions": { // TODO: why is tslint looking at .js files anyway? "exclude": ["node_modules/", "**/*.js", "*/global-types.ts"] } }