2016-06-26 25 views
10

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

4

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.

+0

Wo genau sollte ich diese 'globals.d.ts' Datei? – Milkncookiez

+0

@Milkncookiez Es muss an einem Ort sein, der vom TypeScript-Compiler aufgenommen wird. Üblicherweise wird es in den Root-Quellordner gestellt. –

0

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"] 
], 
+0

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