blob: 34c0a10dc980a7f293fa386ab657d659a1739ad3 [file] [log] [blame]
// Rules that don't require type information, Lint category.
// Enable non-strict mode to allow comments.
{
"rules": {
"array-type": [true, "array-simple"],
"arrow-return-shorthand": true,
"ban": [true,
["fit"],
["fpit"],
["fdescribe"],
["fpdescribe"],
["xit"],
["xpit"],
["xdescribe"],
["xpdescribe"],
["fitAsync"],
["xitAsync"],
["fitFakeAsync"],
["xitFakeAsync"],
{"name": ["it", "skip"]},
{"name": ["it", "only"]},
{"name": ["it", "async", "skip"]},
{"name": ["it", "async", "only"]},
{"name": ["pit", "skip"]},
{"name": ["pit", "only"]},
{"name": ["pit", "async", "skip"]},
{"name": ["pit", "async", "only"]},
{"name": ["describe", "skip"]},
{"name": ["describe", "only"]},
{"name": ["pdescribe", "skip"]},
{"name": ["pdescribe", "only"]},
{"name": ["describeWithDate", "skip"]},
{"name": ["describeWithDate", "only"]},
{"name": ["describeBooleanFlag", "only"]},
{"name": ["describeEnabledBooleanFlag", "only"]},
{"name": "parseInt", "message": "See http://go/tsstyle#type-coercion"},
{"name": "parseFloat", "message": "See http://go/tsstyle#type-coercion"},
{"name": "Array", "message": "See http://go/tsstyle#array-constructor"},
{"name": ["*", "innerText"], "message": "Use .textContent instead. http://go/typescript/patterns#browser-oddities"},
{"name": ["goog", "setTestOnly"], "message": "See http://go/tsstyle#tests"}
],
"ban-types": [true,
["Object", "Use {} or 'object' instead. See http://go/ts-style#wrapper-types"],
["String", "Use 'string' instead."],
["Number", "Use 'number' instead."],
["Boolean", "Use 'boolean' instead."],
// Add tests in google3/javascript/typescript/tslint/test/googleConfig/ban_types.ts.lint
["AnyDuring(?!((CelloJs|AngularIvy|Drive|1TF|AllAsUnknown|GoogPromiseThen|Search|DWE|Assisted)Migration)).*",
"AnyDuringMigration is a quick-fix used during TypeScript migrations, and should be removed as soon as possible. See http://go/any_during_migration."]
],
// go/keep-sorted start
"class-name": true,
"curly": [true, "ignore-same-line"],
"forin": true,
"interface-name": [true, "never-prefix"],
"interface-over-type-literal": true,
"jsdoc-format": true,
"label-position": true,
"member-access": [true, "no-public"],
"new-parens": true,
"no-angle-bracket-type-assertion": true,
"no-conditional-assignment": [true, "allow-within-parenthesis"],
"no-construct": true,
"no-debugger": true,
"no-default-export": true,
"no-duplicate-switch-case": true,
"no-namespace": [true, "allow-declarations"],
"no-reference": true,
"no-require-imports": true,
"no-string-throw": true,
"no-unsafe-finally": true,
"no-unused-expression": [true, "allow-fast-null-checks"],
"no-var-keyword": true,
"object-literal-shorthand": true,
"one-variable-per-declaration": [true, "ignore-for-loop"],
"only-arrow-functions": [true, "allow-declarations", "allow-named-functions"],
"prefer-const": [true, {"destructuring": "all"}],
"radix": true,
"semicolon": [true, "always", "strict-bound-class-methods"],
"static-this": true,
"switch-default": true,
"triple-equals": [true, "allow-null-check"],
"unnecessary-constructor": true
// go/keep-sorted end
}
}