File tree 5 files changed +62
-0
lines changed
5 files changed +62
-0
lines changed Original file line number Diff line number Diff line change @@ -304,6 +304,7 @@ For example:
304
304
| [ vue/no-unregistered-components] ( ./no-unregistered-components.md ) | disallow using components that are not registered inside templates | |
305
305
| [ vue/no-unsupported-features] ( ./no-unsupported-features.md ) | disallow unsupported Vue.js syntax on the specified version | :wrench : |
306
306
| [ vue/no-unused-properties] ( ./no-unused-properties.md ) | disallow unused properties | |
307
+ | [ vue/no-useless-concat] ( ./no-useless-concat.md ) | disallow unnecessary concatenation of literals or template literals | |
307
308
| [ vue/object-curly-spacing] ( ./object-curly-spacing.md ) | enforce consistent spacing inside braces | :wrench : |
308
309
| [ vue/padding-line-between-blocks] ( ./padding-line-between-blocks.md ) | require or disallow padding lines between blocks | :wrench : |
309
310
| [ vue/prefer-template] ( ./prefer-template.md ) | require template literals instead of string concatenation | :wrench : |
Original file line number Diff line number Diff line change
1
+ ---
2
+ pageClass : rule-details
3
+ sidebarDepth : 0
4
+ title : vue/no-useless-concat
5
+ description : disallow unnecessary concatenation of literals or template literals
6
+ ---
7
+ # vue/no-useless-concat
8
+ > disallow unnecessary concatenation of literals or template literals
9
+
10
+ This rule is the same rule as core [ no-useless-concat] rule but it applies to the expressions in ` <template> ` .
11
+
12
+ ## :books : Further reading
13
+
14
+ - [ no-useless-concat]
15
+
16
+ [ no-useless-concat ] : https://eslint.org/docs/rules/no-useless-concat
17
+
18
+ ## :mag : Implementation
19
+
20
+ - [ Rule source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/lib/rules/no-useless-concat.js )
21
+ - [ Test source] ( https://github.com/vuejs/eslint-plugin-vue/blob/master/tests/lib/rules/no-useless-concat.js )
Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ module.exports = {
92
92
'no-unused-properties' : require ( './rules/no-unused-properties' ) ,
93
93
'no-unused-vars' : require ( './rules/no-unused-vars' ) ,
94
94
'no-use-v-if-with-v-for' : require ( './rules/no-use-v-if-with-v-for' ) ,
95
+ 'no-useless-concat' : require ( './rules/no-useless-concat' ) ,
95
96
'no-v-html' : require ( './rules/no-v-html' ) ,
96
97
'no-v-model-argument' : require ( './rules/no-v-model-argument' ) ,
97
98
'no-watch-after-await' : require ( './rules/no-watch-after-await' ) ,
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @author Yosuke Ota
3
+ */
4
+ 'use strict'
5
+
6
+ const { wrapCoreRule } = require ( '../utils' )
7
+
8
+ // eslint-disable-next-line no-invalid-meta, no-invalid-meta-docs-categories
9
+ module . exports = wrapCoreRule ( require ( 'eslint/lib/rules/no-useless-concat' ) )
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @author Yosuke Ota
3
+ */
4
+ 'use strict'
5
+
6
+ const RuleTester = require ( 'eslint' ) . RuleTester
7
+ const rule = require ( '../../../lib/rules/no-useless-concat' )
8
+
9
+ const tester = new RuleTester ( {
10
+ parser : require . resolve ( 'vue-eslint-parser' ) ,
11
+ parserOptions : { ecmaVersion : 2015 }
12
+ } )
13
+
14
+ tester . run ( 'no-useless-concat' , rule , {
15
+ valid : [
16
+ `<template><div :attr="'foo-bar'" /></template>` ,
17
+ '<template><div attr="foo-bar" /></template>' ,
18
+ `<template><div :[\`foo-bar\`]="a" /></template>`
19
+ ] ,
20
+ invalid : [
21
+ {
22
+ code : `<template><div :attr="'foo'+'bar'" /></template>` ,
23
+ errors : [ 'Unexpected string concatenation of literals.' ]
24
+ } ,
25
+ {
26
+ code : `<template><div :[\`foo\`+\`bar\`]="a" /></template>` ,
27
+ errors : [ 'Unexpected string concatenation of literals.' ]
28
+ }
29
+ ]
30
+ } )
You can’t perform that action at this time.
0 commit comments