Я нахожусь в подобной ситуации. Я использовал tslint-microsoft-contrib в качестве базовой линии.
"extends": "tslint-microsoft-contrib",
Это определенно помогает во всех отношениях, которые вы ожидаете. Однако некоторые правила необходимо переконфигурировать или отключить для кода TypeScript для AngularJs. Я сделал следующие изменения конфигурации имя-функции, member-ordering, no-import-side-effect и no-unsafe-any:
"function-name": [
true,
{
// allow public methods to start with $ for $onChanges
// and other Angular lifecycle hooks
"method-regex": "^[a-z$][\\w\\d]+$",
// otherwise unchanged
"private-method-regex": "^[a-z][\\w\\d]+$",
"protected-method-regex": "^[a-z][\\w\\d]+$",
"static-method-regex": "^[A-Z_\\d]+$",
"function-regex": "^[a-z][\\w\\d]+$"
}
],
// Variant ordering that places public statics before constructor
// So we can place AngularJs $inject just before the constructor
"member-ordering": [
true,
{
"order": [
"public-instance-field",
"protected-instance-field",
"private-instance-field",
"public-static-field",
"protected-static-field",
"private-static-field",
"constructor",
"public-static-method",
"protected-static-method",
"private-static-method",
"public-instance-method",
"protected-instance-method",
"private-instance-method"
]
}
],
// angular.module(...).component(...) is a side-effect
"no-import-side-effect": false,
// ng.IController, among others in @types/angular, uses "any"
// and is flagged by this rule
"no-unsafe-any": false,
В зависимости от того, как вы определяете AngularJs компоненты, вы не можете не устанавливать не-импорт-побочный эффект ложной. Я не видел никакого консенсуса относительно наилучшего способа определения компонентов AngularJs в TypeScript, что является позором, учитывая, что это указано как шаг 1 для перехода от AngularJs к Angular 2+.
К сожалению, это исключает возможность использования пользовательских правил tslint для AngularJs для соответствия лучшим практикам. Я играю с идеей запуска eslint-plugin-angular сгенерированного кода или преобразования этих правил в TypeScript. Но лучшим решением может быть переход на Angular 2+ и использование codelyzer.