2017-10-21 11 views
2

私はeslintを使用して自分のコードを修正しようとしています、そのが言ってエラーをスロー:における連結と間違っている何予期しない文字列の連結

cName: "" + ANR + "", 

予期しない文字列の連結

const ANR = 'Animal Friend,ANR,ANP,$30'; 

     const specialityPlates = [{ 
     cName: 'Environmental/Wildlife', 
     oSubMenu: [{ 
     cName: "" + ANR + "", 
     cReturn: "" + ANR + "|27.00" 
     }, 
     { 

この文字列?

+0

'ANR'に' ''が含まれていない限り、すべてがうまくいくはずです。 – Mouser

+1

ANRが既に 'cName:ANR 'だけの文字列であれば、 – charlietfl

+2

はおそらくコメントだけでなくその有用な情報であなたの答えを更新するでしょう。 。 。 – Andrew

答えて

5

template literalをお試しください。

ie。

const ANR = 'Animal Friend,ANR,ANP,$30' 
const specialityPlates = [ 
    { 
    cName: 'Environmental/Wildlife', 
    oSubMenu: [{ 
     cName: `${ANR}`, // "Animal Friend,ANR,ANP,$30" 
     cReturn: `${ANR}|27.00` // "Animal Friend,ANR,ANP,$30|27.00" 
    }] 
    } 
] 
4

明確にするには:あなたの構文と間違って何もありません。

// classic string concatenation 
'a' + 'b' + 'c'; 

が、リンターエラーが常にではありません:

は、それは古典的な文字列の連結を検出したときにエラーをスローするように設定 no-useless-concatルールを持っているあなたのリンターの設定

それは、JavaScriptがそのエラーを投げていないある JavaScriptエラーと同じですので、文字列連結の使用は誤りではなく、ブラウザやNodeなどでそのコードを実行しようとするとJavaScriptエラーが発生しません。エラーは文字列連結よりもテンプレート文字列を優先するようにlinter規則が設定されているためです。

no-useless-concatルールは、ES6テンプレートリテラルがサポートされている環境を前提としており、no-useless-concatルールを使用すると、文字列連結よりもテンプレートリテラルの設定が強化されます。あなたのリンターは文字列連結の例を見つけ、代わりにテンプレートリテラルを使用するべきであることを思い出させるエラーを投げました(あなたのリンターは設定可能であるので、この設定を選択したままにするか、特定のコーディングスタイルを強制しようとしています)。ルールについての詳細を知りたい場合はno-useless-concatルールとそう

// This will throw an error 
"" + ANR + "|27.00"; 

// Use template literals instead 
`${ANR}|27.00`; 

、その後、ここでのドキュメントである(それを無効にする方法、などを、エラーの設定を変更するすべて一緒にそれを無効にします) :https://eslint.org/docs/rules/no-useless-concat


あなたの構文と間違って何もありませんが、文字列コンカため自体、パッドにその必要はありません空の文字列あなたが印刷している値が文字列であることを既に知っている場合は、テニレーションANR + 'something'を実行するだけで十分であり、'' + ANR + 'something' + ''の必要はありません。空の文字列を埋める必要があるのは、結合が行われる前に印刷していた値がcast to a stringであることを確認しようとした場合ですが、通常、印刷する前に印刷している変数のデータ型を知りたいと思うでしょう。

0

リンティングが完全に表面的で、テンプレートを使用するために実際に必要がある場合を除き、著作者(あなたが)すべきではない「好む-テンプレートを// eslintディセーブル・ライン」の行にこのコメントを追加表面的な変化に負担をかける。