2016-06-26 5 views
10

Я использую плагин для устройства от cordova, поэтому у меня есть строка let model = device.model || "";, которая вызывает ошибку Cannot find name 'device'.. Я думаю, что с ESLint мне нужно было бы сделать "eslintConfig": { "globals": { "device": true } } но что такое аналогий TSLint?ESLint как globals в TSLint

ответ

4

Я считаю, что ошибка Cannot find name 'device'. генерируется компилятором TypeScript, а не TSLint. Чтобы решить проблему отсутствия глобальной переменной device, вы можете написать файл определения типа. По соглашению этот файл называется globals.d.ts.

В нем, поместите следующий код:

declare let device: Device; 

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

Заменить func и prop с функциями и свойствами вы ожидаете переменной устройства, чтобы иметь.

+0

Где именно следует поместить этот файл 'globals.d.ts'? – Milkncookiez

+0

@Milkncookiez Он должен находиться в месте, которое подхвачено компилятором TypeScript. Обычно он помещается в корневую папку источника. –

0

Вы можете игнорировать глобальные переменные, добавив их в список ban в tslint.json. Это тот же подход used in the tslint repo, где они игнорируют глобальные значения мокко describe и it.

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

Нет, это запрещает вызовы 'describe.only (...)' и 'test.only (...)'. С этим json tslint помещает любое событие 'test.only' как ошибку. См. Https://palantir.github.io/tslint/rules/ban/ – bronson