TSLint - Предотвращение ошибки: ключ не отсортирован по алфавиту

Я делаю тестовое приложение с Ionic2 / Cordova / Typescript / Angular. Я использую tslint 5.6.0.

Я использую следующий модуль: https://www.npmjs.com/package/tslint

Сосредоточение внимания только на одном файле ...

при линтинге следующего файла:

import { NgModule, ErrorHandler } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { IonicApp, IonicModule, IonicErrorHandler } from "ionic-angular";
import { MyApp } from "./app.component";

import { AboutPage } from "../pages/about/about";
import { ContactPage } from "../pages/contact/contact";
import { HomePage } from "../pages/home/home";
import { TabsPage } from "../pages/tabs/tabs";

import { StatusBar } from "@ionic-native/status-bar";
import { SplashScreen } from "@ionic-native/splash-screen";

@NgModule( {
    declarations: [
        MyApp,
        AboutPage,
        ContactPage,
        HomePage,
        TabsPage,
    ],
    imports: [
        BrowserModule,
        IonicModule.forRoot( MyApp ),
    ],
    bootstrap: [ IonicApp ],
    entryComponents: [
        MyApp,
        AboutPage,
        ContactPage,
        HomePage,
        TabsPage,
    ],
    providers: [
        StatusBar,
        SplashScreen,
        { provide: ErrorHandler, useClass: IonicErrorHandler },
    ],
})
export class AppModule { }

Я получил:

The key 'bootstrap' is not sorted alphabetically
RuleFailurePosition { position: 790, lineAndCharacter: { line: 25, character: 4 } }
RuleFailurePosition { position: 799, lineAndCharacter: { line: 25, character: 13 } }

Я использую следующие варианты:

{
    "extends": "tslint:recommended",
    "rules": {
        "no-duplicate-variable": true,
        "max-line-length": {
            "options": [120]
        },
        "ordered-imports": false,
        "new-parens": true,
        "no-arg": true,
        "no-bitwise": true,
        "no-conditional-assignment": true,
        "no-consecutive-blank-lines": false,
        "no-console": {
            "options": [
                "debug",
                "info",
                "log",
                "time",
                "timeEnd",
                "trace"
            ]
        }
    },
    "jsRules": {
        "max-line-length": {
            "options": [120]
        }
    }
}

Какую опцию мне нужно настроить на TSLint, чтобы эта ошибка не отображалась?


person davidesp    schedule 21.08.2017    source источник
comment
вы хотите настроить tslint, чтобы эта ошибка не отображалась? Или как изменить свой код, чтобы придерживаться правила tslint?   -  person toskv    schedule 21.08.2017
comment
Я хочу, чтобы tslint не отображал эту ошибку   -  person davidesp    schedule 21.08.2017


Ответы (2)


Правило, которое здесь не работает, похоже, это object-literal-sort-keys .

Вы можете отключить его в разделе rules вашего файла конфигурации, добавив:

"object-literal-sort-keys": false

Вы можете найти все правила tslint здесь.

person toskv    schedule 21.08.2017

Для всех, кто приезжает сюда, кто выполняет миграцию на TypeScript с javascript или у кого просто смешанная кодовая база javascript + typescriptm, вы также можете определить это правило внутри jsRules, т.е. чтобы избавиться от этой ошибки, когда у вас есть консоль операторы, определенные внутри javascript (не файлы машинописного текста).

//tslint.json

{
  "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],  
  "rules": {
    "object-literal-sort-keys": false //Disable for typescript
  },
  "jsRules": {
    "object-literal-sort-keys": false //Disable for javascript
  }
}
person Lee Brindley    schedule 03.09.2018