2016-06-26 8 views
10

私はcordovaのデバイスプラグインを使用していますので、Cannot find name 'device'.というエラーが発生するlet model = device.model || "";のような行があります。私はESLintで行う必要があると思います "eslintConfig": { "globals": { "device": true } } それに対応するTSLintは何ですか?TSLintのようなグローバルなESLint

答えて

4

Cannot find name 'device'.エラーは、TSLintではなくTypeScriptコンパイラによって生成されると思います。グローバル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リストに追加することで無視できます。これはmochaのdescribeitグローバルを無視している同じアプローチused in the tslint repoです。

+0

いいえ、それは 'describe.only(...)'と 'test.only(...)'呼び出しを禁止しています。そのjsonでは、tslintは 'test.only'の出現をエラーとしてフラグを立てます。 https://palantir.github.io/tslint/rules/ban/を参照してください。 – bronson

関連する問題