2016-09-20 11 views
3

別のjshintライブラリを追加する必要があるかどうか、または別の方法でこれを行う必要があるかどうかはわかりません。Javascriptインポートされた名前空間の計算された参照を検証できません

私はこのような関数をエクスポートするファイル(説明上の理由から、私たちはスタッフfunctions.jsそれを呼ぶことにします)...別のファイルで

export function a() { 
    return 'stuff'; 
} 

export function b() { 
    return 'more stuff'; 
} 

export function c() { 
    return 'even more stuff'; 
} 

私はそのファイルをインポートしていることを呼んでいるを持っていますそれは正常に動作しますが、コンソールに、私はeslintエラーを取得しています

import * as stuffFunctions from './stuff-functions' 

export default class someReactClass { 
    myFunc(functionToCall) { 
     return stuffFunctions[functionToCall](); 
    } 
    ... 
} 

引数によって機能... ...

Unable to validate computed reference to imported namespace 'stuffFunctions' 

だから、私はこれについて別のことをするか、これを可能にするいくつかの種類のeslintライブラリを狩りますか?

EDIT ...

私は、エラーを停止するには、この行を追加しました// eslintディセーブルライン

私はこれを行うには良い方法があった場合だけ興味がありました。たぶん...

import {a, b, c} from './stuff-functions'; 

export default class someReactClass { 
    myFunc(functionToCall) { 
     const myStuffFunctions = { 
      a: a, 
      b: b, 
      c: c 
     }; 

     return myStuffFunctions[functionToCall](); 
    } 
    ... 
} 

と思われます。 :/

+0

は個人的に、私はeslintはES6に対処するより良い仕事をしないと思う(JSX)を反応させます。私はeslint + jsbeautifierを使用します。 – ajmajmajma

+0

私は悪いです、それはjshintではなく、エスリントのエラーです。 – user3379669

+0

あなたはそのルールに何のルールがあるのか​​知っていますか? – ajmajmajma

答えて

8

プラグインのeslint-plugin-importには、import/namespaceルールでエラーが報告されています。

stuffFunctions[functionToCall](); 

プラグインの静的解析は、これが有効なインポートであり、それは誤りとしてそれを報告することを確認することはできません:あなたは関数が実行時に呼び出される輸入かを決定しているので、それが発生しています。

最も簡単な解決策はallow computed referencesにルールを再構成するESLintコメントを追加するには、次のようになります。

/*eslint import/namespace: ['error', { allowComputed: true }]*/ 
import * as stuffFunctions from './stuff-functions' 

export default class someReactClass { 
    myFunc(functionToCall) { 
     return stuffFunctions[functionToCall](); 
    } 
    ... 
} 
+0

ありがとう@cartant。私は元の質問を私がやったことで編集しました。私はちょうど私がそのような種類のエラーを取得していると思った、それはおそらく悪いことであり、おそらくそれについて何かをする必要があります。私はそれがコード化されているようにすべてがうまく動作しているので、おそらくeslintエラーを抑制することはこの場合に行うことです。 – user3379669

関連する問題