2016-06-26 47 views
10

Sto utilizzando il plug-in dispositivo da cordova quindi ho una riga come questa let model = device.model || ""; che causa l'errore Cannot find name 'device'.. Penso che con ESLint avrei bisogno di fare "eslintConfig": { "globals": { "device": true } } ma qual è la controparte di TSLint?ESLint come globals in TSLint

risposta

4

Credo che l'errore Cannot find name 'device'. sia generato dal compilatore TypeScript, non da TSLint. Per risolvere il problema della mancanza della variabile globale device è possibile scrivere un file di definizione del tipo. Per convenzione questo file è denominato globals.d.ts.

In esso, inserire il seguente codice:

declare let device: Device; 

interface Device { 
    func:() => void; 
    prop: string; 
} 

Sostituire func e prop con le funzioni e le proprietà che ci si aspetta la variabile dispositivo di avere.

+0

Dove esattamente dovrei inserire questo file 'globals.d.ts'? – Milkncookiez

+0

@Milkncookiez Deve trovarsi in una posizione che viene rilevata dal compilatore TypeScript. Comunemente viene inserito nella cartella radice di origine. –

0

È possibile ignorare le variabili globali aggiungendole all'elenco ban in tslint.json. Questo è lo stesso approccio used in the tslint repo in cui si ignorano le metriche describe e it di mocha.

"ban": [true, 
    ["describe", "only"], 
    ["it", "only"] 
], 
+0

No, è vietare chiamate 'describe.only (...)' e 'test.only (...)'. Con quel json, tslint segnala ogni errore di 'test.only' come un errore. Vedi https://palantir.github.io/tslint/rules/ban/ – bronson

Problemi correlati