Ich benutze Geräte-Plugin von Cordova, also habe ich eine Zeile wie diese let model = device.model || "";
, die Cannot find name 'device'.
Fehler verursacht. Ich denke, mit ESLint würde ich tun müssen "eslintConfig": { "globals": { "device": true } }
aber was ist das TSLint Gegenstück dazu?ESLint wie Globals in TSLint
Antwort
Ich glaube, der Cannot find name 'device'.
Fehler wird vom TypeScript-Compiler, nicht von TSLint generiert. Um das Problem der fehlenden globalen Variable device
zu lösen, können Sie eine Typdefinitionsdatei schreiben. Per Konvention heißt diese Datei globals.d.ts
.
Darin setzen Sie den folgenden Code:
declare let device: Device;
interface Device {
func:() => void;
prop: string;
}
ersetzen func
und prop
mit den Funktionen und Eigenschaften, die Sie das Gerätevariable zu erwarten.
Sie können globale Variablen ignorieren, indem Sie sie zur Liste ban
in tslint.json hinzufügen. Dies ist der gleiche Ansatz used in the tslint repo, wo sie Mocha describe
und it
Globals ignorieren.
"ban": [true,
["describe", "only"],
["it", "only"]
],
Nein, das verbietet 'describe.only (...)' und 'test.only (...)' Aufrufe. Mit diesem JSON markiert tslint jedes Vorkommen von 'test.only' als Fehler. Siehe https://palantir.github.io/tslint/rules/ban/ – bronson
Wo genau sollte ich diese 'globals.d.ts' Datei? – Milkncookiez
@Milkncookiez Es muss an einem Ort sein, der vom TypeScript-Compiler aufgenommen wird. Üblicherweise wird es in den Root-Quellordner gestellt. –