jsx-closing-bracket-location
JSX複数行要素の閉じ括弧の位置を強制します。
ルールの詳細
このルールは、すべてのJSX複数行要素をチェックし、閉じ括弧の位置を確認します。デフォルトでは、開始タグに合わせる必要があります。
このルールの**誤った**コードの例
jsx
<Hello
lastName="Smith"
firstName="John" />;
<Hello
lastName="Smith"
firstName="John"
/>;
このルールの**正しい**コードの例
jsx
<Hello firstName="John" lastName="Smith" />;
<Hello
firstName="John"
lastName="Smith"
/>;
ルールオプション
このルールを設定するには、2つの方法があります。
最初の形式は、以下に示す`location`の値に対応する文字列のショートカットです。省略した場合、デフォルトは` "tag-aligned" `です。
js
"@stylistic/jsx/jsx-closing-bracket-location": <enabled> // -> [<enabled>, "tag-aligned"]
"@stylistic/jsx/jsx-closing-bracket-location": [<enabled>, "<location>"]
2番目の形式では、空でないタグと自己終了タグを区別できます。どちらのプロパティもオプションで、デフォルトは両方とも`"tag-aligned"`です。値を`false`に設定することで、特定のタイプのタグに対してルールを無効にすることもできます。
js
"@stylistic/jsx/jsx-closing-bracket-location": [<enabled>, {
"nonEmpty": "<location>" || false,
"selfClosing": "<location>" || false
}]
`location`
閉じ括弧の強制的な位置。
- `tag-aligned`:開始タグに合わせる必要があります。
- `line-aligned`:開始タグを含む行に合わせる必要があります。
- `after-props`:最後のプロパティの直後に配置する必要があります。
- `props-aligned`:最後のプロパティに合わせる必要があります。
デフォルトは`tag-aligned`です。
後方互換性のために、最初の文字列ショートカット形式と同等のオブジェクト`{ "location": <location> }`を渡すことができます。
このルールの**誤った**コードの例
jsx
// 'jsx-closing-bracket-location': 1
// 'jsx-closing-bracket-location': [1, 'tag-aligned']
// 'jsx-closing-bracket-location': [1, 'line-aligned']
<Hello
firstName="John"
lastName="Smith"
/>;
<Say
firstName="John"
lastName="Smith">
Hello
</Say>;
// 'jsx-closing-bracket-location': 1
// 'jsx-closing-bracket-location': [1, 'tag-aligned']
var x = <Hello
firstName="John"
lastName="Smith"
/>;
var x = function() {
return <Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
};
// 'jsx-closing-bracket-location': [1, 'line-aligned']
var x = <Hello
firstName="John"
lastName="Smith"
/>;
var x = function() {
return <Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
};
// 'jsx-closing-bracket-location': [1, 'after-props']
<Hello
firstName="John"
lastName="Smith" />;
<Say
firstName="John"
lastName="Smith">
Hello
</Say>;
// 'jsx-closing-bracket-location': [1, 'props-aligned']
<Hello
firstName="John"
lastName="Smith"
/>;
<Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
このルールの**正しい**コードの例
jsx
// 'jsx-closing-bracket-location': 1
// 'jsx-closing-bracket-location': [1, 'tag-aligned']
// 'jsx-closing-bracket-location': [1, 'line-aligned']
<Hello
firstName="John"
lastName="Smith"
/>;
<Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
// 'jsx-closing-bracket-location': 1
// 'jsx-closing-bracket-location': [1, 'tag-aligned']
var x = <Hello
firstName="John"
lastName="Smith"
/>;
var x = function() {
return <Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
};
// 'jsx-closing-bracket-location': [1, 'line-aligned']
var x = <Hello
firstName="John"
lastName="Smith"
/>;
var x = function() {
return <Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
};
// 'jsx-closing-bracket-location': [1, {selfClosing: 'after-props'}]
<Hello
firstName="John"
lastName="Smith" />;
<Say
firstName="John"
lastName="Smith"
>
Hello
</Say>;
// 'jsx-closing-bracket-location': [1, {selfClosing: 'props-aligned', nonEmpty: 'after-props'}]
<Hello
firstName="John"
lastName="Smith"
/>;
<Say
firstName="John"
lastName="Smith">
Hello
</Say>;
使用しない場合
JSXを使用していない場合は、このルールを無効にすることができます。