web-dev-qa-db-fra.com

Erreur TSLint "dépasse la longueur de ligne maximale de 120"

Dans mon application Angular2, j'importe un composant comme celui-ci:

import { PersonsSingleAccountComponent} from 
   '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'

Cela me donne l'erreur de la charpie "dépasse le caractère de ligne maximum". Si j'essaie de donner l'énoncé dans `` (backtick), cela génère une erreur.

Comment puis-je résoudre cette erreur de peluche?

20
Priya

Ce n'est pas vraiment quelque chose que vous pouvez changer, sans lien avec votre code.

Vous devriez simplement désactiver la règle pour cette importation en ajoutant un commentaire avant: 

// tslint:disable-next-line:max-line-length
import { PersonsSingleAccountComponent} from '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
39
maxime1992

Il existe un autre moyen de supprimer cette erreur - modify tslint rules pour tout le projet.

Dans mon cas, j'avais un projet existant avec des centaines de lignes dépassant la limite. En fait, le code était plus clair de cette façon, car il s’agissait essentiellement d’un tableau d’objets. Mais VS Code a souligné un soulignement rouge sur tout le fichier, ce qui rend sa lecture difficile. 

Ce que j'ai fait était: "max-line-length": [ false ].

Vous pouvez également changer la longueur en écrivant "max-line-length": [ true, 240 ], qui produira le même résultat.

Voici un exemple de tslint.json que j'ai maintenant:

{
    "extends": "../tslint.json",
    "rules": {
        "directive-selector": [
            true,
            "attribute",
            "app",
            "camelCase"
        ],
        "component-selector": [
            true,
            "element",
            "app",
            "kebab-case"
        ],
        "max-line-length": [ false ],
    }
}

Aussi, veuillez commander ce lien pour des paramètres plus avancés.

9
sr9yar

Il existe un autre moyen de résoudre ce problème. 

Depuis la version 5.9.0 La règle de longueur de ligne maximale de TSLint assure la prise en charge des modèles ignorés.

tslint.json:

<!-- language: lang-json -->

{
  "rules": {
    "max-line-length": [
      true, 
      {
        "limit": 120, 
        "ignore-pattern": "^import [^,]+ from |^export | implements"
      }
    ],
  } 
}

Cette règle ignorera les lignes suivantes:

<!-- language: TypeScript -->

import { SomeLongInterfaceName } from '../../../nested/directory/structure/target';
class MyClass implements SomeLongInterfaceName, OnInit, OnDestroy, OnViewChange {}
export { MyClass, SomeLongInterfaceName };

Les crédits vont à DanielKucal .

Pour la question de l'OP, utiliser ^import [^,]+ from serait suffisant pour ignorer les importations longues.

IMHO c'est une meilleure approche, car elle est moins intrusive que de modifier la règle TSLint pour l'ensemble du projet et n'a aucune odeur de code comme si vous désactiviez les règles TSLint dans chaque fichier avec un commentaire.

0
jowey