Tslint: Unsichere Verwendung des Ausdrucks vom Typ 'any'.

Erstellt am 5. Jan. 2018  ·  3Kommentare  ·  Quelle: palantir/tslint

Fehlerbericht

  • __TSLint-Version__: 5.8.0
  • __TypeScript-Version__: 2.6.2
  • __Ausführen von TSLint über__: Node.js-API

TypeScript-Code wird linted

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

Aufbau

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

Tatsächliches Verhalten

Unsichere Verwendung des Ausdrucks vom Typ 'any'.

Erwartetes Verhalten

Ich kann const json: any = JSON.parse(queryData); aber ich möchte die No-any-Regeln einhalten
Wie kann ich die Rückgabe von JSON.parse erhalten, ohne den Ausdruck des Typs 'any' unsicher zu verwenden.

Not A Bug

Alle 3 Kommentare

Ich bin mir wirklich nicht sicher, was Sie hier erwarten... Sie möchten any , aber die Regel no-any beibehalten? Das widerspricht sich komplett. Was hindert Sie daran, nur den passenden Typ für Ihre Abfragedaten zu deklarieren und dann einfach const json: YourType = JSON.parse(queryData); tun?

Danke für die Antwort. ich war nicht klar
Mein Ziel ist es, die No-Any-Regeln einzuhalten und ich suche nach einer Möglichkeit, das Ergebnis von JSON.parse(queryData) ohne Vorwarnung zu erhalten.

Jetzt mache ich json: any = JSON.parse(queryData); => aber ich muss das No-Any deaktivieren.
Wenn ich Ihre Lösung mache: const json: YourType = JSON.parse (queryData);
Ich muss dann die no-unsafe-any-Regeln deaktivieren.

Aus diesem Grund versuche ich in meinem ersten Ansatz Folgendes: const json: {} | null | undefiniert = JSON.parse(queryData); Wenn ich mir das Dokument https://palantir.github.io/tslint/rules/no-unsafe-any/ => ansehe, habe ich weder die No-Unsafe-Any- noch die No-any-Warnung.

Aber JSON.parse kann auch andere Typen wie string zurückgeben, daher ist diese Lösung nicht die richtige.
Ich bin mir eigentlich nicht sicher, ob es eine Lösung gibt, aber bevor Sie es vorziehen, Sie Spezialisten zu fragen.

@ohrrkan Ihr Anwendungsfall ist gut - normalerweise tun die Leute JSON.parse(queryData) as MyType . Dies wird vorerst als nicht umsetzbar geschlossen, da von TSLint keine große Nachfrage nach Maßnahmen bestand. Ich hoffe, das hilft!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen