Tslint: Utilisation dangereuse de l'expression de type « any ».

Créé le 5 janv. 2018  ·  3Commentaires  ·  Source: palantir/tslint

Rapport d'erreur

  • __TSLint version__ : 5.8.0
  • __TypeScript version__ : 2.6.2
  • __Exécution de TSLint via__ : API Node.js

Code TypeScript en train d'être lint

const json: {} | null | undefined = JSON.parse(queryData);

Configuration

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:all"
    ],
    "rules": {
    }
}

Comportement réel

Utilisation dangereuse de l'expression de type « any ».

Comportement prévisible

Je peux faire const json: any = JSON.parse(queryData); mais je veux garder les règles sans aucune
Comment puis-je obtenir le retour de JSON.parse sans obtenir une utilisation non sécurisée de l'expression de type « any ».

Not A Bug

Tous les 3 commentaires

Je ne suis vraiment pas sûr de ce que vous attendez ici... Vous voulez utiliser any , mais voulez garder la règle no-any ? Cela se contredit complètement. Qu'est-ce qui vous empêche de déclarer simplement le type correspondant pour vos données de requête, puis de faire const json: YourType = JSON.parse(queryData); ?

Merci pour votre réponse. je n'étais pas clair
Mon objectif est de conserver les règles no-any et je cherche un moyen d'obtenir le résultat de JSON.parse(queryData) sans avertissement.

Fo maintenant je fais json: any = JSON.parse(queryData); => mais je dois désactiver le no-any.
Si je fais votre solution : const json: YourType = JSON.parse(queryData);
Je devrai alors désactiver les règles no-unsafe-any.

C'est pourquoi, dans ma première approche, j'essaie le : const json: {} | nul | undefined = JSON.parse(queryData); En regardant la doc https://palantir.github.io/tslint/rules/no-unsafe-any/ => je n'aurai pas le no-unsafe-any et le no any warning.

Mais JSON.parse peut également renvoyer un autre type comme une chaîne, donc cette solution n'est pas la bonne.
En fait, je ne suis pas certain qu'il y ait une solution, mais avant, je préfère demander à un spécialiste.

@ohrrkan votre cas d'utilisation est bon - normalement ce que les gens font est JSON.parse(queryData) as MyType . Clôturer cela comme non exploitable pour le moment, car il n'y a pas eu beaucoup de demande pour une action de la part de TSLint. J'espère que cela pourra aider!

Cette page vous a été utile?
0 / 5 - 0 notes