2016-06-26 51 views
10

我正在使用來自科爾多瓦的設備插件,所以我有這樣一行let model = device.model || "";,這會導致Cannot find name 'device'.錯誤。我想用ESLint我需要做 "eslintConfig": { "globals": { "device": true } } 但TSLint對應的是什麼?ESLint像TSLint中的全局變量

回答

4

我相信Cannot find name 'device'.錯誤是由TypeScript編譯器生成的,而不是由TSLint生成的。要解決缺少全局變量device的問題,可以編寫一個類型定義文件。按照慣例這個文件被命名爲globals.d.ts

在這裏面,把下面的代碼:

declare let device: Device; 

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

更換funcprop與你期望的設備變量擁有的功能和特性。

+0

我應該在哪裏放這個'globals.d.ts'文件? – Milkncookiez

+0

@Milkncookiez它需要位於TypeScript編譯器拾取的位置。通常它放在根源文件夾中。 –

0

您可以通過將它們添加到tslint.json中的ban列表中來忽略全局變量。這是他們忽略摩卡的describeit全局變量的相同方法used in the tslint repo

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

不,這是禁止「describe.only(...)'和'test.only(...)'調用。用那個json,tslint標記出現'test.only'的任何錯誤。見https://palantir.github.io/tslint/rules/ban/ – bronson