Skip to content

Commit 2f55173

Browse files
authored
fix(order-in-components): allow autofix with TypeScript PropType (#1955)
1 parent 446ecca commit 2f55173

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

lib/rules/order-in-components.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,9 @@ function isNotSideEffectsNode(node, visitorKeys) {
171171
node.type === 'Literal' ||
172172
// es2015
173173
node.type === 'ArrowFunctionExpression' ||
174-
node.type === 'TemplateElement'
174+
node.type === 'TemplateElement' ||
175+
// typescript
176+
node.type === 'TSAsExpression'
175177
) {
176178
skipNode = node
177179
} else if (

tests/lib/rules/order-in-components.js

+35
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,41 @@ ruleTester.run('order-in-components', rule, {
908908
line: 15
909909
}
910910
]
911+
},
912+
{
913+
filename: 'example.vue',
914+
code: `
915+
<script lang="ts">
916+
export default {
917+
setup () {},
918+
props: {
919+
foo: { type: Array as PropType<number[]> },
920+
},
921+
};
922+
</script>
923+
`,
924+
parser: require.resolve('vue-eslint-parser'),
925+
parserOptions: {
926+
...parserOptions,
927+
parser: { ts: require.resolve('@typescript-eslint/parser') }
928+
},
929+
output: `
930+
<script lang="ts">
931+
export default {
932+
props: {
933+
foo: { type: Array as PropType<number[]> },
934+
},
935+
setup () {},
936+
};
937+
</script>
938+
`,
939+
errors: [
940+
{
941+
message:
942+
'The "props" property should be above the "setup" property on line 4.',
943+
line: 5
944+
}
945+
]
911946
}
912947
]
913948
})

0 commit comments

Comments
 (0)