const json: {} | null | undefined = JSON.parse(queryData);
{
"defaultSeverity": "error",
"extends": [
"tslint:all"
],
"rules": {
}
}
Unsichere Verwendung des Ausdrucks vom Typ 'any'.
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.
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!